这可能是一个简单的问题,但我们无法找到为什么301无效。当我们有一个带问号的网址时,.htacces
中的301重定向无效。例如:
/order/order.html?AddID=1078&Rand=666171759380936096
所以:
Redirect 301 /order/order.html?AddID=1078&Rand=666171759380936096
http://www.domain.nl
在我们的网站管理员工具中,我们有8000个网址具有相同的结构/order/order.html?AddID=....
,表示找不到 404 。我们希望 301 将其重定向到主页,但我们会找到 404 未找到的网页。当我们使用仅/order/order.html
的相同重定向时,他被重定向正确。
答案 0 :(得分:1)
您无法匹配Redirect
语句中的查询字符串,使用mod_rewrite并匹配%{QUERY_STRING}
var:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^AddID=1078&Rand=666171759380936096$
RewriteRule ^order/order.html$ http://www.domain.nl/? [L,R=301]
但是,由于您有8000个以查询字符串?AddID=
开头的网址,因此您只能与之匹配:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^AddID=[0-9]
RewriteRule ^order/order.html$ http://www.domain.nl/? [L,R=301]
答案 1 :(得分:0)
我刚刚尝试过,现在我把它放在了htacces的顶部,看看printscreen。在这种情况下,它是关于网址(通常我不会放置我自己的网址)www.tablet.nl,如果您将我们的404页面之一/order/order.html?AddID=1037&Rand=539054443213186002放在网址后面, /order/order.html是否已被删除?AddID = 1037& Rand = 539054443213186002显示在主网址后面,找不到404页面。
任何想法,我让附件中显示的htacces可以测试网址。
让我知道