我似乎无法正确配置 nginx 以返回 robots.txt 内容。理想情况下,我不需要该文件,只想提供直接在 nginx 中配置的文本内容。这是我的配置:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location = /robots.txt {
#return 200 "User-agent: *\nDisallow: /";
#alias /media/ws/crx-apps/eap/welcome-content/robots.txt;
alias /usr/share/nginx/html/dir/robots.txt ;
}
location / {
try_files $uri $uri/ =404;
}
}
location中所有东西都= /robots.txt
不起作用,我不明白为什么。访问时http://localhost/robots.txt
出现 404。但是,http://localhost/index.html
服务正常。
apt-get install nginx
请注意,除了添加新位置(用于测试)之外,我没有更改任何 nginx 的默认设置。
答案1
首先,我认为您的配置中的问题在于用于匹配的正则表达式。在您的配置中写入这样的语句将非常有帮助,以防止可能出现的模式匹配错误:
location = /robots.txt {
alias /usr/share/nginx/html/dir/robots.txt;
}
其次,您还应该检查权限和有效所有者/usr/share/nginx/html/dir/robots.txt