将特定的get变量重定向到其他文件夹。 htaccess的

时间:2013-06-19 07:29:01

标签: .htaccess redirect mod-rewrite

天前我在教程,手册,论坛中寻求解决方案......仍无法找到解决方案。

我有以下网址:

www.example.com/?unsubscribe=31234242424

我需要重定向到:

www.example.com/newsletter/?unsubscribe=31234242424

只有那个变量,谢谢。

此致,Alex

1 个答案:

答案 0 :(得分:1)

您可以根据RewriteRuleQUERY_STRING之后的位)的内容限制?。您可以使用RewriteCond执行此操作,例如:

RewriteCond %{QUERY_STRING} unsubscribe=
RewriteRule ^$ /newsletter/ [QSA,R]

RewriteCond匹配任何包含“unsubscribe =”的QUERY_STRING。然后RewriteRule将重写任何 empty 请求以指向“/ newsletter /”,并将查询字符串附加到它。仅重写空请求意味着子目录中的请求不会被重定向。

例如

http://example.com/?unsubscribe=12345 -> http://example.com/newsletter/?unsubscribe=12345
http://example.com/test/?unsubscribe=12345 : no redirect

如果您还希望重定向子目录的请求,请将规则替换为以下内容:

RewriteCond %{QUERY_STRING} unsubscribe=
RewriteRule .* /newsletter/ [QSA,R]

希望所有这些都有意义。