繁体   English   中英

阻止除 .htaccess 以外的所有搜索查询

[英]Block all search queries except on .htaccess

我目前正在一个 wordpress 网站上工作,其中我有一个特殊情况。 我希望允许一个特定的搜索查询,同时拒绝所有其他查询。

例如:

  • www.example.com - 通过
  • www.example.com/page - 通过
  • www.example.com
  • www.example.com/?myQuery - 通过
  • www.example.com/?anyotherQuery - 404

现在,我已经尝试使用以下重写规则,但它也阻止了对其他页面的访问。

RewriteBase "/"
RewriteCond %{QUERY_STRING} ! myQuery
RewriteRule ^.* - [F]`

我是重写和 htaccess 方面的新手,所以需要帮助来实现这一点。

.htaccess文件的顶部,WordPress 前控制器之前尝试以下操作。

RewriteCond %{QUERY_STRING} .
RewriteCond %{QUERY_STRING} !=myQuery
RewriteRule ^ - [F]

上述状态...对于任何包含查询字符串(第一个条件)且查询字符串不完全是myQuery (第二个条件)的 URL,然后以 403 Forbidden(Apache 响应,而不是 WordPress)响应。

CondPattern上的=前缀使其成为字典字符串比较(不是正则表达式)和! 前缀否定结果。

 RewriteBase "/" RewriteCond %{QUERY_STRING}. myQuery RewriteRule ^.* - [F]`

RewriteBase指令在这里无关紧要。 之间的空间! 并且myQuery是错误的。 但这可能会阻止查询字符串不包含myQuery的任何内容,包括根本没有查询字符串的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM