6

このコードを使用すると、成功します。

Redirect 301 /products.php http://website.com.au/product_123.php

しかし、私がこれを行う場合、それはそうではありません:

Redirect 301 /products.php?id=123 http://website.com.au/product_123.php

URLの変数が、失敗の原因であることに注意してください。

私は何が間違っているのですか?これを行う別の方法はありますか?私は本当にurls変数が必要です。

4

1 に答える 1

16

RedirectディレクティブのソースURIパスにクエリ文字列パラメータを配置することはできません。そのためには、 mod_rewriteの%{QUERY_STRING}変数を使用する必要があります。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=123$
RewriteRule ^/?product\.php$ http://website.com.au/product_123.php? [L,R=301]

または、より一般的にするには:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=([^&]+)
RewriteRule ^/?product\.php$ http://website.com.au/product_%1.php? [L,R=301]
于 2012-12-21T11:18:17.717 に答える