我正在尝试为robots.txt
nginx http 服务器下的所有虚拟主机设置。通过将以下内容放在 main 中,我能够在 Apache 中做到这一点httpd.conf
:
<Location "/robots.txt">
SetHandler None
</Location>
Alias /robots.txt /var/www/html/robots.txt
Run Code Online (Sandbox Code Playgroud)
我尝试通过在 nginx.conf 和 (b) 中添加下面给出的行 (a) 作为 include conf.d/robots.conf 来对 nginx 做类似的事情
location ^~ /robots.txt {
alias /var/www/html/robots.txt;
}
Run Code Online (Sandbox Code Playgroud)
我试过用 '=' 甚至把它放在一个虚拟主机中来测试它。似乎没有任何效果。
我在这里缺少什么?有没有另一种方法来实现这一目标?
小智 69
您可以直接在 nginx 配置中设置 robots.txt 文件的内容:
location = /robots.txt { return 200 "User-agent: *\nDisallow: /\n"; }
Run Code Online (Sandbox Code Playgroud)
也可以添加正确的 Content-Type:
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /\n";
}
Run Code Online (Sandbox Code Playgroud)
小智 10
是否定义了其他规则?可能包含的 common.conf 或另一个 conf 文件覆盖了您的配置。以下之一绝对应该有效。
location /robots.txt { alias /home/www/html/robots.txt; }
location /robots.txt { root /home/www/html/; }
Run Code Online (Sandbox Code Playgroud)
小智 5
location 不能在http
块内使用。nginx 没有全局别名(即可以为所有 vhost 定义的别名)。将您的全局定义保存在一个文件夹中并包含它们。
server {
listen 80;
root /var/www/html;
include /etc/nginx/global.d/*.conf;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
52697 次 |
最近记录: |