0

.htaccessファイルを使用したURLの書き換えに問題があります。問題は次のとおりです。

サーバー上の.htaccessファイルに以下のコードを入れたとき

RewriteRule ^/?xyz http://google.com [R=301]

ブラウザでURLMY_WEB_DOMAIN.COM/xyzaを呼び出すと、google.comにリダイレクトされます(予想どおり)

また、url MY_WEB_DOMAIN.COM/xyz/abcを呼び出すと、404エラーが発生します。

どちらの場合もグーグルにリダイレクトするべきではありませんか?または、パターンで/(スラッシュ)を使用すると、他の何かがコードに影響を与えていますか?

前もって感謝します。

4

2 に答える 2

1

arkaschaは正しいです。これを使って:

RewriteRule ^/?xyz.* http://www.google.com [R=301]

/?これを最初の/オプションにします。この場合は一種のasinineです。しかし、。*は、/xyzに一致するものをすべてキャッチしたいものです-----

arkaschaがそれを答えとして投稿した場合は、それを受け入れる必要があります。私はこれをテストしました、そしてそれはうまく働きます。それがうまくいかない場合は、htaccessでこのルールの上にある行を確認してください。競合する可能性があります。

于 2012-09-01T08:40:34.553 に答える
0

書き換えは問題なく機能していました。

サーバー側のヘッダーでURLが書き換えられていないか確認し、直接urlと呼びました。変更は1つだけ見つかりました。

直接URLでredirect_urlとrequest_uriが含まれていましたが同じでした。書き換えられたURLでは両方が異なっていました。(oxwallはrequest_uriを使用して処理しているのではないかと思いました。

だから私はphpでURLを書き直したのと同じにしました。行を配置することによって$_SERVER['REQUEST_URI'] = $ _ SERVER ['REDIRECT_URL'];

そしてそれは行われます。:)

于 2012-09-10T11:05:14.003 に答える