更正 nginx 配置以防止索引某些文件夹
Correct nginx configuration to prevent indexing of some folders
我正在使用以下 Nginx
配置来防止在我使用 x-robots tag
时对某些文件夹中的内容编制索引
location ~ .*/(?:archive|filter|topic)/.* {
add_header X-Robots-Tag "noindex, follow";
}
内容仍保留在索引中,但我无法调试 Nginx
配置。
我的问题:我使用的配置是否正确,我是否应该等到 googlebot 重新抓取内容并对内容取消索引?还是我配置有误?
你写的配置是正确的。我要注意一点(假设您的配置是标准配置):
只有结果码为200、201、204、206、301、302、303、304、307时才会输出X-Robots-Tag(例如内容匹配磁盘文件,发出重定向, ETC。)。所以如果你有 /archive/index.html
,点击 http://yoursite.com/archive/
将得到 header。如果 index.html
不存在 (404),您将看不到标签。
always
参数将为所有响应代码输出 header,假设位置块已处理:
location ~ .*/(?:archive|filter|topic)/.* {
add_header X-Robots-Tag "noindex, follow" always;
}
另一个选项将保证 header 在 URI 匹配时输出。这对于可能无法处理位置块的情况很有用(由于 short-circuiting,例如 return 或重写时的 last
等):
http {
...
map $request_uri $robot_header {
default "";
~.*/(?:archive|filter|topic)/.* "noindex, follow";
}
server {
...
add_header X-Robots-Tag $robot_header;
...
}
我正在使用以下 Nginx
配置来防止在我使用 x-robots tag
location ~ .*/(?:archive|filter|topic)/.* {
add_header X-Robots-Tag "noindex, follow";
}
内容仍保留在索引中,但我无法调试 Nginx
配置。
我的问题:我使用的配置是否正确,我是否应该等到 googlebot 重新抓取内容并对内容取消索引?还是我配置有误?
你写的配置是正确的。我要注意一点(假设您的配置是标准配置):
只有结果码为200、201、204、206、301、302、303、304、307时才会输出X-Robots-Tag(例如内容匹配磁盘文件,发出重定向, ETC。)。所以如果你有 /archive/index.html
,点击 http://yoursite.com/archive/
将得到 header。如果 index.html
不存在 (404),您将看不到标签。
always
参数将为所有响应代码输出 header,假设位置块已处理:
location ~ .*/(?:archive|filter|topic)/.* {
add_header X-Robots-Tag "noindex, follow" always;
}
另一个选项将保证 header 在 URI 匹配时输出。这对于可能无法处理位置块的情况很有用(由于 short-circuiting,例如 return 或重写时的 last
等):
http {
...
map $request_uri $robot_header {
default "";
~.*/(?:archive|filter|topic)/.* "noindex, follow";
}
server {
...
add_header X-Robots-Tag $robot_header;
...
}