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

Nginx如何将admin子域名重定向至www,排除含wp-admin的路径请求

问题核心原因

你编写的规则无法生效的根本原因:rewrite 指令的正则匹配范围是请求的URI路径部分,不会匹配域名(Host头部),所以你试图在路径中匹配admin子域名的逻辑本身就不成立。

正确配置实现

方案1:拆分server块(最推荐,性能最优、逻辑清晰)

Nginx官方推荐使用不同server块处理不同子域名,逻辑拆分最清晰,性能也远高于正则判断:

# admin子域名专属server块
server {
    listen 443 ssl;
    server_name admin.domainname.com;
    # 替换为你实际的SSL证书配置
    ssl_certificate /path/to/your/cert.pem;
    ssl_certificate_key /path/to/your/key.pem;

    # 匹配wp-admin开头的请求,直接正常处理不跳转
    location ^~ /wp-admin/ {
        # 此处填写和www站点一致的站点配置,比如根目录、索引、PHP处理规则等
        root /path/to/your/site/root;
        index index.php index.html;
        # PHP站点示例配置,非PHP站点可删除
        location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }

    # 其他所有请求重定向到www子域名,保留完整URI和查询参数
    location / {
        return 301 https://www.domainname.com$request_uri;
    }
}

# 原有www子域名的server块保持不变即可
server {
    listen 443 ssl;
    server_name www.domainname.com;
    # 原有配置无需修改
}

方案2:单server块兼容(适合不方便拆分server块的场景)

如果需要把两个子域名的配置放在同一个server块中,可以通过判断Host头实现需求:

server {
    listen 443 ssl;
    server_name admin.domainname.com www.domainname.com;
    # 通用的SSL、根目录、索引等基础配置

    # 只有admin子域名的非wp-admin路径才触发跳转
    if ($host = 'admin.domainname.com') {
        set $redirect_rule 1;
    }
    if ($request_uri ~ ^/wp-admin/) {
        set $redirect_rule 0;
    }
    if ($redirect_rule = 1) {
        return 301 https://www.domainname.com$request_uri;
    }

    # 下方保留原有站点的其他配置即可
}

上述写法已经规避了Nginx if指令的常见陷阱,可正常使用

配置验证

修改配置后执行nginx -t检查语法是否正确,确认无误后执行nginx -s reload重载配置生效,可通过curl命令测试规则:

  • 普通路径测试:curl -I https://admin.domainname.com/test-slug 应返回301状态码,Location头为https://www.domainname.com/test-slug
  • wp-admin路径测试:curl -I https://admin.domainname.com/wp-admin/test 应返回正常业务状态码,不会出现301跳转

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:15:02