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

Nginx配置调整求助:实现www跳转非www、修复不存在路径返回500错误

问题原因说明

  1. www跳非www不生效:当前443端口的服务块同时绑定了www.example.com和example.com,且80端口的跳转规则仅做了HTTP转HTTPS,没有将www域名的请求转到非www域名,导致跳转逻辑不生效。
  2. 不存在路径返回500错误:现有配置中所有不存在的静态资源/路径都会转发到index.php处理,若PHP程序没有对应路由处理逻辑、或不存在的PHP文件被直接请求,都会触发PHP报错返回500,而非预期的404。

修正后的完整配置

# 80端口:统一所有HTTP请求跳转到HTTPS非www域名
server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://example.com$request_uri;
}

# 443端口www域名:所有HTTPS的www请求跳转到非www域名
server {
    listen 443 ssl;
    server_name www.example.com;
    
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    
    return 301 https://example.com$request_uri;
}

# 443端口主服务:处理非www域名的正常业务请求
server {
    listen 443 ssl;
    server_name example.com;
    root /var/www/project/;
    index index.php index.html index.htm index.nginx-debian.html;

    # 静态资源/路径匹配规则
    location / {
        # 如果你用的是需要统一入口的PHP框架(如Laravel/ThinkPHP等),保留下面这行即可,404逻辑由框架处理
        try_files $uri $uri/ /index.php$is_args$args;
        # 如果你是静态站点为主、不需要PHP框架路由,把上面一行注释,取消下面一行的注释,不存在的路径直接返回404
        # try_files $uri $uri/ =404;
    }

    # PHP文件处理规则
    location ~ \.php$ {
        # 新增:仅存在的PHP文件才转发给PHP-FPM处理,不存在直接返回404,避免触发500错误
        try_files $fastcgi_script_name =404;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

生效步骤

  1. 替换原有配置后,执行nginx -t命令验证配置语法是否正确
  2. 验证通过后执行systemctl reload nginx重载配置即可生效

内容的提问来源于stack exchange,提问作者UXerUIer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:48:01