我试图在我的htaccess文件上设置2个重定向,但我无法使其工作。
所需的输出是:
www.mywebsite.com/page1
,则会将其重定向到/folder/newPage
www.mywebsite.com/page1?a=123
,则会将其重定向到/folder/anotherPage?a=123
我试过这个
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/page1$ /folder/newPage [R=301,L]
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/page1(.*)$ /folder/anotherPage$1 [R=301,L]
我也试过这样的事情:
RewriteCond %{REQUEST_URI} ^/page1$
RewriteRule ^(.*)$ /folder/newPage [R=301,L]
RewriteCond %{REQUEST_URI} ^/page1$
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ /folder/anotherPage%1 [R=301,L]
请注意,在我的apache上启用了Rewrite mod。
知道如何让它发挥作用吗?
答案 0 :(得分:1)
检查以下内容:
RewriteEngine On
出现在所有规则之前AllowOverride
指令允许加载htaccess文件.*
匹配 0或更多个字符,因此%{QUERY_STRING} ^(.*)$
也匹配空查询字符串。将其更改为.+
。最终规则应该是:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^page1$ /folder/newPage [R=301,L]
RewriteCond %{QUERY_STRING} ^(.+)$
RewriteRule ^page1$ /folder/anotherPage?%1 [R=301,L]