0

この辺りのどこかに答えがあるに違いないことはわかっていますが、見つけることができません。

同じドメインに典型的な 301 リダイレクト ルールがあります。

Redirect 301 /path/to/strange-url.htm /path/to/new/canonical-url.htm

後で htaccess ファイルに、canonical-url の書き換えルールがあります。

RewriteRule ^([^/]+)/([^/]+)([^/]+)/([^-]+)-([^.]+)\.htm$ php/page.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [NC,L]

問題は、301 リダイレクトがアクティブになるとすぐに、新しい URL が次のようになることです。

/path/to/new/canonical-url.htm?var1=xxxx&var2=xxxx&var3=xxxx&var4=xxxx&var5=xxxx

これを回避し、クリーンな URL のみを維持するにはどうすればよい/path/to/new/canonical-url.htmですか?

4

2 に答える 2

1

わかりました私はついに実用的な解決策を見つけました

すべての Redirect 301 ルールを RewriteRule [R=301,L] に変更したので、次のようにします。

Redirect 301 /path/to/strange-url.htm /path/to/new/canonical-url.htm

になる

RewriteRule ^/path/to/strange-url.htm http://www.example.com/path/to/new/canonical-url.htm [R=301,L]

また、実際の書き換えの前に以前のリダイレクトをすべて移動しました

于 2013-02-06T15:06:15.650 に答える
0

ループがあるようです。次のように、要求された URI に条件を追加してみてください。

RewriteCond %{REQUEST_URI} !^php/page.php
RewriteRule ^([^/]+)/([^/]+)([^/]+)/([^-]+)-([^.]+)\.htm?$ php/page.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [NC,L]
于 2013-02-06T08:26:40.877 に答える