从301重定向中删除查询字符串

时间:2012-05-22 18:57:56

标签: apache redirect query-string http-status-code-301

我正在努力为最初使用查询字符串构建的网站创建适当的301重定向。旧的URL结构如下所示:

http://www.oldsite.com/about/index.cfm?fuseaction=cor_av&artID=5049

我想将整个子文件夹(名为“about”)重定向到新域上的新页面。新域名的URL如下所示:

http://www.newsite.com/info

所以,我设置了一个如下所示的重定向:

redirectMatch 301 ^/about/ http://www.newsite.com/info  

重定向很好,但它保留了附加的原始URL字符串,因此新的URL在浏览器中看起来像这样:

http://www.newsite.com/info/?fuseaction=cor_av&artID=5049 

我绝对不是Apache / 301专家知道如何解决这个问题。我只是想剥掉一切从?上。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:30)

两个选项:

redirectMatch 301 ^/about/ http://www.newsite.com/info? 

或:

RewriteEngine on
RewriteRule ^about/(.*) http://www.newsite.com/info? [L,R=301]
最后的问号似乎是关键的一点。第二个看起来更干净(首先在URL的末尾留下一个问号)

答案 1 :(得分:0)

尝试将此代码添加到为.htaccess指定的oldsite.com

RewriteCond %{REQUEST_URI} ^/about/index.cfm$
RewriteRule ^(.+) http://www.newsite.com/info/ [R=301,QSA]

跟进?