2011-12-26 51 views
0

我想重写我的网址,以便每当有一个?时,它和后面的所有内容都被删除。从网址中删除所有查询字符串

我有不同的字符串,如:

....html?frame=... 

....html?sport=... 

....html?type=... 

所以可以很容易,如果有一个?在url的任何地方,它应该被截断。

(顺便说一句,我已经改写为.PHP的.html)

非常感谢。

+0

请给现实生活样本:应该怎样,应该在服务器 – 2011-12-27 08:22:11

+0

在内部修改在他/她的浏览器,以及用户类型看http://stackoverflow.com/questions/8669755/trim-query- sting-from-url/8669969#8669969 – Gerben 2011-12-29 21:33:52

回答

1

正如在评论中指出:

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

作品,但OP表示,恢复的PHP - > HTML扩展转换回来。

尝试将其添加的PHP/HTML 改写:

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

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

我刚刚试了一下,我有跟RewriteBase一些问题,你可能需要设置这个工作。否则,看起来不错。

+0

谢谢,Darkhogg。该代码没有效果。我看过这段代码:'RewriteCond%{QUERY_STRING}!=“” RewriteRule ^(。*)$/$ 1? [L,R = 301]',但在删除查询字符串后它将扩展名转换回.php。 – Beau 2011-12-26 22:04:29

+0

更新了我的答案以解决......好,一切。增加了一些关于php-> html扩展转换的信息。 – Darkhogg 2011-12-26 23:16:56

+0

谢谢,Darkhogg。我将不得不摆弄它,因为php/html重写的位置没有什么区别。 – Beau 2011-12-27 04:52:52

0

mod_rewrite documentation(重点煤矿):

修改查询字符串

默认情况下,查询字符串加改变地通过。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串中使用问号表示应将以下文本重新注入查询字符串。 当您想要删除现有的查询字符串时,只需使用问号来结束替换字符串。要合并新旧查询字符串,请使用[QSA]标志。

相关问题