从URL中删除所有查询字符串

时间:2011-12-26 20:33:25

标签: mod-rewrite query-string truncate

我想重写我的网址,以便每当有一个?时,它就会被移除。

我有各种字符串,例如:

....html?frame=...

....html?sport=...

....html?type=...

所以要轻松一点,如果有的话?在网址的任何地方,它都应该被截断。

(顺便说一句,我已经将.php重写为.html)

非常感谢。

2 个答案:

答案 0 :(得分:1)

正如评论中所指出的那样:

RewriteCond %{QUERY_STRING} !=""
RewriteRule ^(.*)$ /$1?

工作,但OP说它还原了php - > html扩展转换回来。

尝试在之前添加php / html重写

RewriteRule ^(.*)\.php$ /$1.html

RewriteCond %{QUERY_STRING} !=""
RewriteRule ^(.*)$ /$1? [L,R=302]

我刚尝试过,我遇到了RewriteBase的一些问题,您可能需要设置此问题才能使用。否则,看起来很好。

答案 1 :(得分:0)

来自mod_rewrite documentation(强调我的):

  

修改查询字符串

     

默认情况下,查询字符串不会更改。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串中使用问号,即表示应将以下文本重新注入查询字符串。 如果要删除现有查询字符串,请仅使用问号结束替换字符串。要合并新旧查询字符串,请使用[QSA]标记。