1

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

4

1 回答 1

2

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

RewriteCond %{QUERY_STRING} ^Page=sPage&sPage=Our-Store$
RewriteRule ^ %{REQUEST_URI}?Page=sPage&sPage=About-Us [R=301,L]
于 2013-04-25T10:22:39.703 回答