Nginx

使用 nginx 的 Wordpress 子域出現錯誤 404

  • September 18, 2017

我正在設置一個帶有 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;
   }

這裡的位置塊:

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塊。

引用自:https://serverfault.com/questions/874252