尝试将一个页面重定向到另一个页面,但我的重定向规则没有响应

时间:2013-04-25 10:14:19

标签: .htaccess redirect http-status-code-301

我已删除和/或合并网站上的几个页面,现在我需要设置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 ...

的相关内容

1 个答案:

答案 0 :(得分:2)

您无法在重定向或重写规则中与查询字符串匹配,您需要在条件中使用%{QUERY_STRING}变量来执行此操作:

RewriteCond %{QUERY_STRING} ^Page=sPage&sPage=Our-Store$
RewriteRule ^ %{REQUEST_URI}?Page=sPage&sPage=About-Us [R=301,L]