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

Mod rewrite 从URL中删除所有查询字符串,mod-rewrite,query-string,truncate,Mod Rewrite,Query String,Truncate,我想重写我的url,这样每当出现?时,它和之后的所有内容都会被删除 我有各种字符串,例如: ....html?frame=... ....html?sport=... ....html?type=... 所以,如果有一个?url中的任何位置都应该被截断 (顺便说一下,我已经将.php重写为.html了) 非常感谢。正如评论中指出的: RewriteCond %{QUERY_STRING} !="" RewriteRule ^(.*)$ /$1? 工作,但OP说它恢复了php->html扩

我想重写我的url,这样每当出现?时,它和之后的所有内容都会被删除

我有各种字符串,例如:

....html?frame=...

....html?sport=...

....html?type=...
所以,如果有一个?url中的任何位置都应该被截断

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


非常感谢。

正如评论中指出的:

RewriteCond %{QUERY_STRING} !=""
RewriteRule ^(.*)$ /$1?
工作,但OP说它恢复了php->html扩展转换

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

我刚试过,但我在重写库时遇到了一些问题,您可能需要对此进行设置才能正常工作。否则,看起来很好。

来自(强调我的):

修改查询字符串

默认情况下,查询字符串在传递过程中保持不变。但是,您可以在包含查询字符串部分的替换字符串中创建URL。只需在替换字符串内使用问号,指示应将以下文本重新注入查询字符串如果要删除现有查询字符串,请在替换字符串末尾加一个问号。要组合新查询字符串和旧查询字符串,请使用[QSA]标志


谢谢,达克霍格。该守则没有任何效力。我确实看到了这段代码:
RewriteCond%{QUERY\u STRING}=“”重写规则^(.*)$/$1?[L,R=301]
但在删除查询字符串后,它将扩展名改回了.php。更新了我的答案以修复。。。嗯,一切都好。添加了一些关于php->html扩展转换的信息。谢谢,Darkhogg。我不得不摆弄它,因为php/html重写的位置没有什么不同。请给出真实的示例:用户应该在浏览器中键入什么,以及应该如何在服务器中对其进行内部修改参见
RewriteRule ^(.*)\.php$ /$1.html

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