如何设置将删除Apache上的URL参数的Wild Card 301重定向

时间:2012-09-27 13:14:05

标签: apache mod-rewrite url-rewriting

好的,我已经看到了很多例子,但我似乎仍然无法做到正确。我有一个旧的电子平台上的旧网址,它们在引擎中被大量索引,这些参数具有非seo友好的参数,我需要将其重定向到我的根目录。

我需要全局301将任何内容从/ store /重定向到我们的根目录。这是我到目前为止所得到的。

RewriteRule ^store/.*$ / [R=301,NE,NC,L]

它部分地完成了工作,但它没有删除参数。这是我遇到问题的参数示例。 store/index.php?cPath=1

希望我们能尽快修复,因为这让我对这些网址感到悲伤。

3 个答案:

答案 0 :(得分:3)

为了摆脱自动附加到mod_alias和mod_rewrite重定向结尾的查询字符串,您需要创建自己的查询字符串,但要将其设置为空。所以你只想在重定向/重写目标的末尾添加?。例如:

使用mod_rewrite:

RewriteRule ^store/ /? [R=301,L]

使用mod_alias:

RedirectMatch 301 ^/store/ /?

请注意,使用mod_alias时,?会显示在网址栏中。

答案 1 :(得分:0)

尝试以下方法:

RewriteRule ^store/([^\.]+\.[^?]+) /$1 [R=301,NE,NC,L]

会从网址中排除所有参数,因此/store/index.php?cPath=1会转换为/index.php

答案 2 :(得分:0)

好的伙计们! 这次我们得到了它。

就像Jon Lin说我们错过了一个?某处。对于那些试图设置通配符重定向并且必须从网址中删除参数的人来说,这是我们的解决方案。

RewriteRule ^ store /.*$ /? [R = 301,NE,NC,L]

干杯!