.htaccess - 从URL中删除查询字符串(无重定向)

时间:2012-02-21 08:52:07

标签: .htaccess mod-rewrite query-string httpserver

我的网址为http://www.example.com/eg1?redirect=xyz,应为http://www.example.com/eg1

为此编写的重写规则如下:

RewriteCond %{Query_STRING} ^redirect=xyz$
RewriteRule ^(.*)$ /examples/$1? [L]

重定向工作正常,但查询字符串仍然附加。当我把[R]标记在问题标记(?)时,最终效果很好并删除了查询字符串,但[L]标记它不起作用。在我的情况下,我没有重定向,只是将它传递到另一个保存内容的目录。

1 个答案:

答案 0 :(得分:2)

规则很好:

RewriteCond %{Query_STRING} ^redirect=xyz$
RewriteRule ^(.*)$ /examples/$1? [L]

如果您希望它反映在地址栏中,则必须指定外部重定向。即RTemporary RedirectR=302)或Permanent RedirectR=301)。与L一起。默认情况下,R执行临时重定向。

RewriteRule ^(.*)$ /examples/$1? [R,L]

来自评论:

添加L以及flsg R

RewriteRule ^(.*)$ $1? [R,L]