不同参数的不同标头

时间:2017-09-28 12:11:15

标签: apache .htaccess mod-rewrite http-headers

我在网址上有一些参数。具有一个参数的网址应使用X-Robots-Tag获得自己的特殊索引/抓取规则。这可以通过以下方式完成:

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

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

问题是:我如何修改此规则,将分配给id=旁边的所有其他参数及其值另一个Header set X-Robots-Tag规则?

我的想法是通过排除id - 参数来分配另一条规则,例如RewriteCond %{QUERY_STRING} !=id*$ - 但我不确定,是否正确。

<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} !=id*$
RewriteRule .* - [E=NOINDEX_HEADER:1] 
</IfModule>

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

1 个答案:

答案 0 :(得分:1)

您可以在RewriteCond

中使用这样的否定
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} !(^|&)id= [NC]
RewriteRule ^ - [E=NOINDEX_HEADER:1] 
</IfModule>

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