使用 nginx 的 Wordpress 子域名出现 404 错误

使用 nginx 的 Wordpress 子域名出现 404 错误

我正在设置一个带有 wordpress 的子域。我的 nginx 配置出现 404 错误。目前使用的 PHP 版本:7.0.22,php 日志中没有出现任何错误,但我在 nginx 中

/var/log/nginx/error.log

 *1 open() "/usr/share/nginx/html/50x.html" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: kb.workspire.io, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php7-fpm.sock", host: "kb.workspire.io"

这是我当前的服务器块

/etc/nginx/sites-available/kb.workspire.io

server {
    listen 80
    server_name kb.workspire.io;
    root /var/www/kb.workspire.io/wordpress;
    index index.php;

    location / {
            #try_files $uri $uri/ =404;
             try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    listen 443 ssl;

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
            root /usr/share/nginx/html;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php7-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }

答案1

此处的位置块:

location = /50x.html {
        root /usr/share/nginx/html;
}

告诉 nginx 获取自定义错误页面/usr/share/nginx/html/50x.html,但由于该页面不存在而引发错误。

如果您使用自定义错误页面,则需要修复路径以便可以找到它们。 50x.html 页面应该在 中,/usr/share/nginx/html但 40x.html 页面却在 中,这看起来确实很奇怪/var/www/kb.workspire.io/wordpress

如果你是不是使用自定义错误页面,您可以删除error_page指令和location = /50x.html块。

相关内容