我已删除和/或合并网站上的几个页面,现在我需要设置301重定向。
我打算在我的.htaccess中这样做是我最好的选择,但是我试图添加的规则并没有引起注意。他们根本没有回应......
这是我到目前为止所尝试的规则:
Redirect 301 /?Page=sPage&sPage=Our-Store %{SERVER_NAME}?Page=sPage&sPage=About-Us
RewriteRule ^/?Page=sPage&sPage=Our-Store$ %{SERVER_NAME}?Page=sPage&sPage=About-Us[R=301,NC,L]
RewriteCond %{HTTP_HOST} !^%{SERVER_NAME}$ [NC]
RewriteRule . %{SERVER_NAME}%{REQUEST_URI}?Page=sPage&sPage=About-Us [R=301,L]
这最后一个搞砸了CSS和JS src的......
我在顶部有这个:
RewriteEngine On
RewriteBase /
有什么建议吗?
更新:跟进问题
我喜欢3000+相等的url字符串,结尾ID不同。如何重定向所有这些请求?
这是旧网址:?Page=Tuninglist&Car=*
这是新的:?Page=Tuning&view=vehicle&type=Car&id=*
* id=
的值只是整数......
希望这样的东西可以正常工作,但是没有 - 反而有500服务器错误......
RewriteCond %{QUERY_STRING} ^Page=Tuninglist&Car=([0-9]+)$
RewriteRule ^ ?Page=Tuning&view=vehicle&type=Car&id=$1 [R=301,L]
*编辑:发生了500服务器错误,因为我在条件开头有一个?
重定向现在有效,但结尾id
值不包括在内
我得到的只是正确的页面,而不是基于id
...
答案 0 :(得分:2)
您无法在重定向或重写规则中与查询字符串匹配,您需要在条件中使用%{QUERY_STRING}
变量来执行此操作:
RewriteCond %{QUERY_STRING} ^Page=sPage&sPage=Our-Store$
RewriteRule ^ %{REQUEST_URI}?Page=sPage&sPage=About-Us [R=301,L]