问题描述:Apache RewriteCond %{QUERY_STRING} 无法正常工作。
解决方法:
检查 RewriteEngine 是否已启用。在 Apache 配置文件中,确保 RewriteEngine On 被设置为启用重写引擎。
检查 RewriteCond 是否正确使用 %{QUERY_STRING}。确保 RewriteCond %{QUERY_STRING} 正确用于指定条件。例如,如果您想检查查询字符串中是否包含特定参数,可以使用以下代码示例:
RewriteCond %{QUERY_STRING} (^|&)param=value(&|$)
其中 param 是要检查的参数名称,value 是参数的值。这个示例将匹配以下查询字符串:param=value、foo=bar¶m=value、param=value&abc=def。
示例代码:
RewriteCond %{QUERY_STRING} (^|&)param=value(&|$)
RewriteRule ^(.*)$ /new-url? [R=301,L]
这个示例将重定向所有带有 param=value 的请求到 /new-url,并且将查询字符串清除掉。
示例代码:
RewriteCond %{QUERY_STRING} (^|&)param=value(&|$)
RewriteRule ^(.*)$ /new-url? [R=301,L]
这个示例将匹配带有 param=value 的请求,并且在重定向后停止处理其他规则。
请注意,这些解决方法只是一些常见解决方法,具体取决于您的需求和配置。您可能需要根据自己的情况进行调整和修改。