【发布时间】:2017-12-27 06:49:39
【问题描述】:
我正在尝试从其放置的任何 url 中删除 ?s= 的任何实例。
这是我正在使用的当前重写规则,但它只是抛出 500 错误,知道为什么吗?
RewriteCond %{QUERY_STRING} ^s=$
RewriteRule ^(.*)$ $1 [L,R=302,QSD]
【问题讨论】:
标签: html .htaccess mod-rewrite url-rewriting
我正在尝试从其放置的任何 url 中删除 ?s= 的任何实例。
这是我正在使用的当前重写规则,但它只是抛出 500 错误,知道为什么吗?
RewriteCond %{QUERY_STRING} ^s=$
RewriteRule ^(.*)$ $1 [L,R=302,QSD]
【问题讨论】:
标签: html .htaccess mod-rewrite url-rewriting
您可能使用的是较旧的 Apache 版本,因为标志 QSD 仅在较新的 Apache 版本 2.4+ 上受支持。在较旧的 Apache 版本上,这将导致 500 internal server error。
您可以改用此规则:
RewriteCond %{QUERY_STRING} ^s=$
RewriteRule ^ %{REQUEST_URI}? [L,R=302]
目标 URL 中的? 将丢弃现有的查询字符串。
【讨论】: