Apache 301在querystring中用斜杠重定向URL

Apache 301在querystring中用斜杠重定向URL,apache,.htaccess,mod-rewrite,url-redirection,Apache,.htaccess,Mod Rewrite,Url Redirection,我们为我们的一个客户建立了一个新的网店,并且正在将他们的旧url重定向到我们的普通url。我们通常使用.htaccess执行此操作,如下所示: 重定向301/url1/http://www.url2.com/而且工作正常 但是旧商店有一个带有斜杠(!)的查询字符串,例如: /epages/14353.sf/de_de/?ObjectPath=/Shops/61922345/Products/32428 一旦我在htaccess 301重定向字符串中使用它,它就会停止工作。我没有收到500错误或类

我们为我们的一个客户建立了一个新的网店,并且正在将他们的旧url重定向到我们的普通url。我们通常使用.htaccess执行此操作,如下所示:

重定向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
),我可以访问它并重定向,但如果其中有斜杠,则不能


我试着反斜杠,编码等,但没有正确的结果。有人有主意吗?我尝试在上运行
allowencodedslash,但它给了我500个错误。

由于您无法匹配
重定向
指令中的
查询字符串
,因此需要使用基于
的规则

在您的根目录中有此项。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]

请确保在新浏览器中对此进行测试,以避免使用旧的缓存数据。

重定向指令与查询字符串根本不匹配。你确定没有其他原因导致这个问题吗?@HansWassink你能展示你的完整.htaccess吗?@JonLin你到底是什么意思?@anubhava
Redirect 301/epages/14353.sf/de_de/?ObjectPath=/Shops/61922345/Products/32428https://www.nu.nl
这是文件中唯一的内容。旧商店不见了,它只是一个htaccess文件,只有一条规则。我写了几乎相同的重写代码,但不幸的是,我仍然收到一个404错误,说明找不到
/epages/14353.sf/de_de/
。这让我抓狂…也许是他们的服务器,我会联系主机。谢谢@anubhavaI这么做了,它被启用了
gibblygoo
返回500。
http://medidar-shop.de/epages/14353.sf/de_DE/?ObjectPath=/Shops/61922345/Products/32428
我做了,但它仍然不起作用。这可能是他们的主人应该解决的问题,也许他们在某处有一个黑暗的潜伏者。谢谢你的帮助!