Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 阻止除.htaccess外的所有搜索查询_Html_Wordpress_Apache_.htaccess - Fatal编程技术网

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

Html 阻止除.htaccess外的所有搜索查询,html,wordpress,apache,.htaccess,Html,Wordpress,Apache,.htaccess,我目前正在一个wordpress网站上工作,我有一个特例。我希望允许一个特定的搜索查询,同时拒绝所有其他查询 例如: www.example.com-PASS www.example.com/page-通过 www.example.com www.example.com/?myQuery-通过 www.example.com/?anyotherQuery-404 现在,我已经尝试使用以下重写规则,但它也阻止了对其他页面的访问 RewriteBase "/" Rewrite

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

例如:

  • www.example.com
    -PASS
  • www.example.com/page
    -通过
  • www.example.com
  • www.example.com/?myQuery
    -通过
  • www.example.com/?anyotherQuery
    -404
现在,我已经尝试使用以下重写规则,但它也阻止了对其他页面的访问

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

我在重写和htaccess方面是新手,因此需要帮助来实现这一点。

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

RewriteCond %{QUERY_STRING} .
RewriteCond %{QUERY_STRING} !=myQuery
RewriteRule ^ - [F]
上述国家。。。对于任何包含查询字符串(第一个条件)且查询字符串不完全是
myQuery
(第二个条件)的URL,请使用403禁止响应(Apache响应,而不是WordPress)

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


RewriteBase
指令与此无关。
之间的空格
myQuery
错误。但这可能会阻止任何查询字符串不包含
myQuery
的内容,包括根本没有查询字符串的情况。

“一个特定的搜索查询”-您是指一个特定的“查询字符串”?还有URL路径吗?如果您使用的是WordPress,那么在PHP框架中使用搜索比在底层Apache/htaccess系统中使用搜索更有意义。@怀特:没错。所有页面上只应传递特定的查询“myQuery”,其他所有页面应为404@Martin,实际上我必须通过htaccess阻止它,以避免所有其他错误查询。您的第三个示例代表什么?谢谢@MrWhite!它工作得很好!
RewriteBase "/"
RewriteCond %{QUERY_STRING} ! myQuery
RewriteRule ^.* - [F]`