“/robots.txt” 位于位置“\.php$”之外?

“/robots.txt” 位于位置“\.php$”之外?

尝试为 nginx 设置 cloudflare 缓存插件时,我收到的错误是“/robots.txt”位于位置“.php$”之外。Robots.txt 文件存在于 worpress 中,在此先行致谢。

服务器 {

服务器名称www.mydomain.com我的域名.com;

访问日志/srv/www/mydomain.com/logs/access.log;

错误日志/srv/www/mydomain.com/logs/error.log;

根/srv/www/mydomain.com/public_html;

索引索引.php;

地点 / {

try_files $uri $uri/ /index.php?$args;

}

位置 ~ .php$ {

包括/etc/nginx/fastcgi_params;

fastcgi_pass unix:/var/run/php-fpm/www.sock;

fastcgi_index索引.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

位置 ~* .(xml|xsl)$ { add_header Cache-Control "no-cache, no-store, must-revalidate, max-age=0"; 过期 -1; }

位置 /robots.txt { add_header Cache-Control “no-cache, no-store, must-revalidate, max-age=0”; 过期 -1; }

位置/wp-cron.php { add_header Cache-Control“no-cache,no-store,must-revalidate,max-age = 0”; 到期-1; }

答案1

您提供的 Nginx 配置部分在语法上不正确(不完整)。请检查所有左括号是否都有相应的右括号。

我认为问题与此有关。您的location ~ .php$代码块似乎没有我期望的右括号,并且该代码块location /robots.txt显示为它的子代码块。这是错误的根源。

避免此类错误的最简单方法是始终一致地缩进配置文件。这种缩进不仅仅是为了美观。它是为了你自己,让你少犯这样的错误:

location ~ .php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/php-fpm/www.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

这是您的配置中似乎缺少的右括号。

相关内容