首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将任何非www子域重定向到www

问如何将任何非www子域重定向到www
EN

Server Fault用户
提问于 2020-07-29 21:16:12
回答 1查看 53关注 0票数 1

我只是不知道如何将任何非www子域重定向到www。

当我进入一个没有www子域的域时,我会被重定向到www./。就像$domain扩展不起作用一样。

代码语言:javascript
复制
server {
    listen          80 default_server;
    listen          [::]:80;
    listen          443 default_server;
    listen          [::]:443;
    server_name     ~^(?\.)?(?.+)$;

    if ($sub != 'www') {
        return      301 $scheme://www.$domain;
    }
}

有人能帮我找出如何获得正确的配置来完成以下工作吗?

代码语言:javascript
复制
domain-a.com > www.domain-a.com
dev.domain-b.com > www.domain-b.com
www.domain-a.com > Gets to see the website.

提前感谢!

EN

回答 1

Server Fault用户

发布于 2020-07-30 07:25:49

我假设您的意思是希望从*.example.com和example.com重定向到www.example.com。

代码语言:javascript
复制
server {
    listen 80 default_server;
    listen [::]:80;
    listen 443 default_server;
    listen [::]:443;

    ssl_certificate /path/to/certificate;
    ssl_certificate_key /path/to/key;

    server_name ~ example\.com$;

    return 301 $scheme://www.example.com;
}

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

    ssl_certificate /path/to/certificate;
    ssl_certificate_key /path/to/key;

    server_name www.example.com;

    # Other directives for www.example.com
}

第一个服务器块匹配以example.com结尾的任何域名,并发出重定向。

第二个服务器块与www.example.com匹配。如nginx 文档所述,在匹配通配符/正则表达式匹配之前,nginx首先处理完全的server_name匹配。

更好的方法是定义一个单独的default_server块,它将为任何其他域名的请求返回404状态代码。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1027244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档