查询字符串参数的 x-robots 标签

x-robots tag for query string parameter

我想使用 x-robots 标记阻止 .htaccess 中的查询字符串 url。 url 类似于:

https://www.example.com/test?limit=60
https://www.example.com/test?limit=45
https://www.example.com/test?limit=all

我需要屏蔽 ?limit=xxx

我试过类似的方法,但没有用:

<IfModule mod_headers.c>
<Files "^limit=?$">
Header set X-Robots-Tag "noindex, nofollow"
</Files>
</IfModule>

正则表达式不是这样工作的。一些相关的差异:

  • ?* 是量词,不是包罗万象的 "match anything" 标记。
  • ^ 匹配字符串的开头。

这应该可以代替:

<IfModule mod_headers.c>
<Files "\?(.*&)?limit=(\d+|all)(&.*)$">
Header set X-Robots-Tag "noindex, nofollow"
</Files>
</IfModule>

得到它与此一起使用:

<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ^limit=([a-zA-Z0-9]*)$
RewriteRule .* - [E=NOINDEX_HEADER:1] 
</IfModule>

<IfModule mod_headers.c>
Header set X-Robots-Tag "noindex" env=NOINDEX_HEADER
</IfModule>