阻止除 .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( second condition) 然后用 403 Forbidden 响应(Apache 响应,不是 WordPress)。
CondPattern 上的 =
前缀使其成为词典字符串比较(不是正则表达式),!
前缀否定结果。
RewriteBase "/"
RewriteCond %{QUERY_STRING} ! myQuery
RewriteRule ^.* - [F]`
RewriteBase
指令与此处无关。 !
和 myQuery
之间的 space 是错误的。但这可能会阻止查询字符串不 包含 myQuery
的任何内容,包括根本没有查询字符串的情况。
我目前正在一个 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( second condition) 然后用 403 Forbidden 响应(Apache 响应,不是 WordPress)。
CondPattern 上的 =
前缀使其成为词典字符串比较(不是正则表达式),!
前缀否定结果。
RewriteBase "/" RewriteCond %{QUERY_STRING} ! myQuery RewriteRule ^.* - [F]`
RewriteBase
指令与此处无关。 !
和 myQuery
之间的 space 是错误的。但这可能会阻止查询字符串不 包含 myQuery
的任何内容,包括根本没有查询字符串的情况。