我想将“http://www.suma.ir/product.php?id_product=12”重定向到“http://www.suma.ir/product.php?id_product=508”,但我遇到了问题。 URL 路径应该保持不变,我想要做的就是更改查询字符串中的 ID。我需要做什么才能完成这项工作?

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

最佳答案

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]

关于.htaccess - 如何使用重定向更改查询字符串参数的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4930749/

10-10 17:59
查看更多