以下应该按照您所说的向请求浏览器发出 301 重定向。
RewriteCond %{QUERY_STRING} query=string
RewriteRule ^/page/ /page/ [R=301]
但是,您只想提供正确的内容,您可以通过以下方式避免 301 重定向:
RewriteCond %{QUERY_STRING} query=string
RewriteRule ^/page/ /page/ [PT,NS,E=QUERY_STRING:]
它将完全删除 QUERY_STRING,因此请注意。
如果您想重写一些不同的查询字符串,但不是全部用于 /page/
RewriteCond %{QUERY_STRING} query=badstring1 [OR]
RewriteCond %{QUERY_STRING} query=badstring2 [OR]
RewriteRule ^/page/ /page/ [PT,NS]
所有 RewriteRules 都假定您在某处有“RewriteEngine On”,您的主机很可能已经完成了这项工作。它还需要 Apache 中的 mod_rewrite 模块,我假设基于 .htaccess 请求正在使用该模块。
http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
话虽如此,这似乎是非常不必要的,因为如果页面不需要参数,它会忽略它们,除非当然这是被传递给脚本的,在这种情况下你应该能够在代码中处理它,但也许你有一个导致问题的框架。
这是一本关于该主题的好书:
Pro Apache
参见第 277-299 页