You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改hosts测试Nginx部署的WordPress站点时出现404错误

问题描述

将多个WordPress站点从Apache服务器迁移至Nginx服务器后,通过修改本地hosts文件进行预上线测试时,除单个站点外其余均返回Nginx 404空白页面。已反复核对配置信息但问题未解决。目前未上线站点未配置SSL证书,但可正常访问的站点其预发布(staging)版本带有SSL证书,怀疑此为问题诱因;暂无法为未上线站点完成SSL证书验证,计划先上线一个站点测试是否解决问题。

附当前Nginx配置:

# Ploi Webserver Configuration, do not remove!
include /etc/nginx/ploi/thelitton.co.uk/before/*;

server {
    listen 80;
    listen [::]:80;

    root /home/thelitton-2uuer/thelitton.co.uk/public_html;
    server_name thelitton.co.uk;

    include /etc/nginx/ssl/thelitton.co.uk;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/nginx/dhparams.pem;

    index index.php index.html;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    charset utf-8;

    # Ploi Configuration, do not remove!
    include /etc/nginx/ploi/thelitton.co.uk/server/*;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    access_log off;
    error_log  /var/log/nginx/thelitton.co.uk-error.log error;

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.4-fpm-thelitton-2uuer.sock;
        fastcgi_buffers 16 16k;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        include fastcgi_params;
    }

    # assets, media
    location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
        expires 365d;
        access_log off;
    }

    # svg, fonts
    location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
        add_header Access-Control-Allow-Origin "*";
        expires 365d;
        access_log off;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

# Ploi Webserver Configuration, do not remove!
include /etc/nginx/ploi/thelitton.co.uk/after/*;
排查与解决方案
  • 清理无效SSL配置:当前server块监听80端口(HTTP协议),但引入了SSL相关配置文件及指令,这会导致Nginx配置冲突或请求处理异常。需:

    1. 注释掉SSL配置引用:# include /etc/nginx/ssl/thelitton.co.uk;
    2. 删除所有SSL相关指令(ssl_protocols、ssl_ciphers、ssl_prefer_server_ciphers、ssl_dhparam)
  • 验证文件权限:确保Nginx进程用户(通常为www-data)拥有站点根目录的读取权限:

    chown -R www-data:www-data /home/thelitton-2uuer/thelitton.co.uk/public_html
    chmod -R 755 /home/thelitton-2uuer/thelitton.co.uk/public_html
    
  • 同步WordPress站点URL设置:在问题站点的wp-config.php中添加强制HTTP的站点URL定义,避免HTTPS跳转导致的404:

    define('WP_HOME','http://thelitton.co.uk');
    define('WP_SITEURL','http://thelitton.co.uk');
    
  • 验证配置并重启Nginx:修改配置后执行以下命令确保配置有效并生效:

    nginx -t
    systemctl reload nginx
    

内容的提问来源于stack exchange,提问作者Sam St Aubyn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:26:01