使用条件删除htaccess中的查询字符串

时间:2014-03-14 14:49:16

标签: regex .htaccess mod-rewrite url-redirection http-redirect

我准备好把头发拉出来了。基本上,我已经将旧的.asp站点(使用产品查询)更改为.php站点(也使用查询,但是针对不同的参数)。试图让我的htaccess重定向工作。最重要的是,我需要在特定时间拉出查询字符串,而不是其他时间。

以下是产品旧网址的格式,在这种情况下,产品ID为“101”:      http://www.example.com/shopping/shopexd.asp?id=101

有很多产品,因为我的新网站不使用产品查询,所以我只想将它们全部重定向到我的新主页。

如果我使用这样的东西:

RedirectMatch 301 ^/shopping/(.*) http://www.example.com/

然后它离开了?= 101,给了我:

http://www.example.com/?=101

我不能使用毯子“摆脱所有查询”类型的方法,因为新网站确实将它们用于其他事情,例如订单ID或类别ID。

1 个答案:

答案 0 :(得分:0)

您需要使用mod_rewrite规则来删除现有的查询字符串。

将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

RewriteRule ^shopping/ http://www.mysite.com/? [L,NC,R=301]

此处?最后用于去除任何现有的查询字符串。