Как я могу изменить значение параметра строки запроса с помощью перенаправления? - PullRequest
3 голосов
/ 08 февраля 2011

Я хочу перенаправить "http://www.suma.ir/product.php?id_product=12" на" http://www.suma.ir/product.php?id_product=508", но у меня проблема. Путь URL должен оставаться прежним, все, что я хочу сделать, это изменить идентификатор в строке запроса. Что мне нужно сделать, чтобы сделать эту работу?

Options +FollowSymlinks

RewriteEngine on

RewriteCond %{HTTP_HOST} ^suma\.ir$ [NC]
RewriteRule ^(.*)$ http://www.suma.ir/$1 [R=301,L]

# This is the part that isn't working
Redirect 301 /product.php?id_product=12 http://www.suma.ir/product.php?id_product=508

1 Ответ

1 голос
/ 08 февраля 2011

Директива mod_alias Redirect не смотрит на строку параметров, поэтому ваш оператор Redirect никогда не будет совпадать.Вместо этого вам нужно будет использовать mod_rewrite.Вы можете сделать что-то вроде следующего:

Options +FollowSymlinks

RewriteEngine on

RewriteCond %{HTTP_HOST} ^suma\.ir$ [NC]
RewriteRule ^(.*)$ http://www.suma.ir/$1 [R=301,L]

RewriteCond %{QUERY_STRING} (^|&)id_product=12(&|$)
RewriteRule ^product\.php$ /$0?id_product=508 [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...