我们为我们的一个客户建立了一个新的网上商店,并将他们的旧网址重定向到我们的正常网站。像往常一样,我们使用.htaccess执行此操作,如下所示:
Redirect 301 /url1/ http://www.url2.com/
,它运作正常。
但旧商店有这个查询字符串 ,其中包含斜杠(!) ,例如:
/epages/14353.sf/de_DE/?ObjectPath=/Shops/61922345/Products/32428
一旦我在htaccess 301重定向字符串中使用它,它就会停止工作。我没有得到500错误或类似的错误,但当我访问/epages/14353.sf/de_DE/?ObjectPath=/Shops/61922345/Products/32428
时,它不会重定向。如果我将它与查询字符串一起使用,如下所示(/epages/14353.sf/de_DE/?ObjectPath=foobar
)我可以访问它并重定向,但如果它有斜杠则不会。
我试过反斜杠,编码等但没有正确的结果。有没有想法?我试过AllowEncodedSlashes On
,但它给了我一个500错误。
答案 0 :(得分:1)
由于您无法在QUERY_STRING
指令中匹配Redirect
,因此您需要使用基于mod_rewrite
的规则。
在你的根目录中有这个.htaccess:
RewriteEngine On
RewriteCond %{QUERY_STRING} ObjectPath=/Shops/61922345/Products/32428
RewriteRule ^/?epages/14353\.sf/de_DE/?$ https://www.nu.nl? [L,NC,R=301]
确保在新浏览器中对此进行测试,以避免旧的缓存数据。