2

URL内のいくつかの数値を検索し、リダイレクト先のURLでそれらを使用する正規表現を見つけようとしています。

Redirect 301 /page.php?id=95485666 http://test.com/profile/info/id/95485666

多分考えていた

Redirect 301 /page.php?id=([0-9]+) http://test.com/profile/info/id/$1

しかし、それは機能していないようです

また、301リダイレクトを実行した場合、コードを.htaccessファイルに保持する必要がある期間はどれくらいですか?グーグルはいつ新しいリンクが良いものであると理解するつもりですか?

4

2 に答える 2

3

Redirectディレクティブ(またはRedirectMatch/のいずれか)のクエリ文字列と照合することはできませんRewriteRule%{QUERY_STRING}mod_rewriteのvarを使用する必要があります:

RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)id=([0-9]+)($|&)
RewriteRule ^/?page\.php$ http://test.com/profile/info/id/%2? [L,R=301]
于 2012-09-10T17:20:49.090 に答える
2

構文が間違っていると思います。これを試して:

RewriteRule ^page.php?id=([0-9]+)  http://test.com/profile/info/id/$1  [R=301,L]
于 2012-09-10T17:03:29.617 に答える