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

Nginx环境下非www转www永久重定向的最优方案咨询

针对Nginx的非www转www永久重定向方案

先明确:.htaccess在Nginx里行不通

首先得给你掰扯清楚,.htaccess是Apache服务器的专属配置文件,Nginx完全不支持它。所以你不用纠结两种方案选哪个,直接专注于Nginx的服务器层面配置就对了。

是否需要分别处理80和443端口?

必须要!现在绝大多数网站同时运行HTTP(80端口)和HTTPS(443端口),如果只配置其中一个,会导致部分访问场景下重定向失效:比如用户输入http://example.com(HTTP非www),或者https://example.com(HTTPS非www),这两种情况都得覆盖到才能保证所有请求都跳转到正确的https://www.example.com。

具体配置示例

下面是完整的Nginx配置代码,你可以直接替换成自己的域名和证书路径:

1. 处理HTTP(80端口)所有请求

server {
    listen 80;
    server_name example.com www.example.com;

    # 把所有HTTP请求永久重定向到HTTPS的www版本
    return 301 https://www.example.com$request_uri;
}

2. 处理HTTPS(443端口)的非www请求

server {
    listen 443 ssl;
    server_name example.com;

    # 填写你的SSL证书和密钥路径
    ssl_certificate /path/to/your/fullchain.crt;
    ssl_certificate_key /path/to/your/private.key;

    # 把HTTPS非www请求永久重定向到HTTPS的www版本
    return 301 https://www.example.com$request_uri;
}

3. 主网站的HTTPS(www)配置

这部分是你实际网站的核心配置,保证www.example.com能正常访问:

server {
    listen 443 ssl;
    server_name www.example.com;

    # 同样配置SSL证书(可以和上面的一致,或者用include复用)
    ssl_certificate /path/to/your/fullchain.crt;
    ssl_certificate_key /path/to/your/private.key;

    # 网站根目录和默认索引文件
    root /var/www/your-site-root;
    index index.html index.php;

    # 这里可以添加你的其他Nginx规则,比如PHP处理、静态文件缓存等
    # ...
}

配置后的验证步骤

  1. 先测试Nginx配置是否有语法错误:
nginx -t
  1. 如果提示test is successful,就重启Nginx让配置生效:
systemctl restart nginx

(如果是老系统,可能用service nginx restart)

为什么这么配置?

  • 用301永久重定向:对SEO友好,搜索引擎会更新收录的域名地址
  • 保留$request_uri:确保用户访问的具体路径(比如example.com/about)会被正确跳转到www.example.com/about,不会丢失请求参数
  • 覆盖所有场景:不管用户输入HTTP/HTTPS、带不带www,都能统一到目标地址

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 09:28:13