从Rootdomain中删除查询字符串

时间:2015-07-22 01:53:41

标签: .htaccess mod-rewrite

我知道简单的重定向一个(子)域或文件夹到另一个我可以摆脱像这样的字符串

RewriteEngine On
RewriteRule (.*) http://www.domain.tld/? [R=301,L]

我知道当它是一个简单的文件时如何摆脱它。

但是当谈到Rootdomain本身(http://domain.tld/?Stringwhatsoever)时,我在这里不知所措。我的上一次尝试使用了重定向的修改版本,我用它来重定向文件和文件夹,并且工作得非常好,并且还删除了查询,但最终导致重定向错误。

RewriteRule ^ http://domain.tld/? [L,NC,R=301]

所以我不知道如何在不破坏它的情况下删除URL上的查询字符串。

1 个答案:

答案 0 :(得分:1)

试试这个:

RewriteEngine On
RewriteCond %{THE_REQUEST} /\?([^\s]+) [NC] 
RewriteRule ^$ http://domain.com/? [NC,R,L]

或者

RewriteEngine On
RewriteCond %{QUERY_STRING} (.+) [NC] 
RewriteRule ^$ http://domain.com/? [NC,R,L]

参考:

- https://wiki.apache.org/httpd/RewriteQueryString