我在htaccess中尝试重定向时我是全新的,但是有一个大约20个网址的列表,所有网址都有查询字符串,所有网址都不同。
我设法使用使用RewriteCond和RewriteRule的查询字符串获取重定向但是当我以相同的格式添加其他网址时,它们似乎都重定向到第一个RewriteRule中的网址。
它变得如此沮丧,因为我到处搜索并尝试了很多方法来尝试使其工作。希望有人在这里可以帮助我!
以下是我需要重定向的几个网址:
/store/index.php?search=flip flops>> http://www.stonemenswear.co.uk/menswear/flip-flops
/store/index.php?search=Boss+Orange+Shorts>> http://www.stonemenswear.co.uk/menswear/shorts
这是我到目前为止的代码:
RewriteEngine on
RewriteCond "%{QUERY_STRING} search=flip flops"
RewriteRule ^index\.php$ http://www.stonemenswear.co.uk/menswear/flip-flops/? [R=301,N]
RewriteCond %{QUERY_STRING} search=Boss+Orange+Shorts
RewriteRule ^index\.php$ http://www.stonemenswear.co.uk/menswear/shorts? [R=301,N]
(加上其余的重写格式相同)
每个都被重定向到触发器页面!
提前致谢。
答案 0 :(得分:0)
错误地使用标记N
而是需要L
标记。用以下代码替换您的代码:
RewriteCond "%{QUERY_STRING} search=flip flops" [NC]
RewriteRule ^store/index\.php$ http://www.stonemenswear.co.uk//menswear/flip-flops/? [R=301,L,NC]
RewriteCond %{QUERY_STRING} ^search=Boss\+Orange\+Shorts(&|$) [NC]
RewriteRule ^store/index\.php$ http://www.stonemenswear.co.uk/menswear/shorts/? [R=301,L,NC]
答案 1 :(得分:0)
这里有一些小的语法错误。
RewriteCond %{QUERY_STRING} "^search=flip flops$" [NC]
RewriteRule ^store/index\.php$ http://www.stonemenswear.co.uk/menswear/flip-flops/? [R=301,L]
RewriteCond %{QUERY_STRING} ^search=Boss\+Orange\+Shorts$ [NC]
RewriteRule ^store/index\.php$ http://www.stonemenswear.co.uk/menswear/shorts/? [R=301,L]