无参数重定向到URls

时间:2014-01-07 13:52:17

标签: php apache .htaccess mod-rewrite redirect

感谢帮助像我这样的新手用你能胜任的答案:我有一个关于从带有参数的URls重定向到没有参数的新URls的问题,可能使用.htaccess文件。 我在这样的问题上尝试过答案 htacces to redirect without params 301 Redirect of old url with parameters to a path without parametes

但我仍然不确定如何正确进行。

所以这是我的问题:旧的URL结构 http://www.mysite.com/my-files/query-qry?origen=1&destino=&aerolinea=DE&proveedor=barceloviajes&clase=F&escalas=

应该重定向到这个: http://www.mysite.com/my-files/query-qry

简而言之:我想在没有所有参数的情况下添加301重定向。什么是最好和最快的解决方案,是否有可以应用的规则?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:2)

RewriteEngine On
RewriteCond %{QUERY_STRING} !="" #if there is a query string
RewriteCond %{QUERY_STRING} !^p=.* #wordpress users: allow post tempalinks
RewriteCond %{REQUEST_URI} !^/wp-admin.* #wordpress users: don't break admin
RewriteRule ^(.*)$ /$1? [R=301,L] #remove query string

http://briancray.com/posts/htaccess-hack-remove-url-query-strings/

答案 1 :(得分:0)

  

To put it short: I want to add a 301 redirection without all parameters.

您可以在DOCUMENT_ROOT/.htaccess文件中使用此规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} .+
RewriteRule ^ %{REQUEST_URI}? [R=301,L] 

答案 2 :(得分:0)

比使用final?更好,你应该使用qsdiscard标志QSD。 对于你的情况:

RewriteCond %{QUERY_STRING} .+
RewriteRule ^my-files/query-qry my-files/query-qry [QSD,L,R=301]