首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nginx 301将http (裸和www)重定向到https www,加上通配符子域重定向到https。

Nginx 301将http (裸和www)重定向到https www,加上通配符子域重定向到https。
EN

Stack Overflow用户
提问于 2018-07-01 19:23:00
回答 1查看 535关注 0票数 1

我正在尝试为多租户Saas设置一个Nginx代理服务器,其中包含许多自定义域名。我想要做的是创建一个服务器块,它可以处理以下请求,所有这些请求都是301永久的:

  1. http://custom-domain.com to https://www.custom-domain.com (自定义-domain.com可以是任何用户设置的域名)
  2. http://www.custom-domain.com to https://www.custom-domain.com (同样,任何域名)
  3. http://_.saas-domain.com to https://_.saas-domain.com (saas-https://_.saas-domain.com,com是我的服务的一个域名)

我目前正在用一些If语句来处理这个问题,但是它看起来很烦人,我希望能以更有效的方式提供一些帮助:

代码语言:javascript
运行
复制
server {
    listen 80 default_server;

    location / {

      # if 'www' redirect to https
      if ($host ~* ^(www)) {
        return 301 https://$host$request_uri;
      }
      # if '*.saas-domain.com' redirect to https://*.saas-domain.com
      if ($host ~* ^(.*)\.saas-domain\.com) {
        return 301 https://$host$request_uri;
      }
      # if not 'www' redirect to https and add 'www'
      if ($host !~* ^(www)) {
        return 301 https://www.$host$1 permanent;
      }
    }
}

这是处理我所有场景的最好方法吗?我认为复杂的是通配符自定义域。我关心的是If语句的开销。蒂娅!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-01 20:25:15

Nginx建议不要使用"If“语句,除非您没有其他解决问题的方法。我建议为您的域名添加单独的块,因为这将给您提供更多的灵活性。

尝试下面的方法,看看是否有帮助。

代码语言:javascript
运行
复制
# Capture requests that already have www and redirect to https

server {

    listen 80;
    server_name www.*;
    return 301 https://$server_name$request_uri;

}

# Captures the saas-domain.com requests and redirects them

server {

    listen 80 ;
    server_name *.saas-domain.com;
    return 301 https://$server_name$request_uri;

}

# Default capture everything else and redirect to https://www.

server {

    listen 80 default_server;
    server_name _;
    return 301 https://www.$host$request_uri;

}

在生产中实现它之前先测试它。

Nginx服务器名称

Nginx如果是邪恶的

Nginx变量

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

https://stackoverflow.com/questions/51126322

复制
相关文章

相似问题

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