【问题标题】:CentOs Nginx redirect https://www to https://CentOs Nginx 重定向 https://www 到 https://
【发布时间】:2020-03-21 23:54:41
【问题描述】:

我在 centos 中使用 Nginx。我面临重定向问题。

我想将所有请求重定向到https://some-domain.com/url

我可以重定向

http://www.some-domain.com to https://some-domain.com
www.some-domain.com to https://some-domain.com
http://some-domain.com to https://some-domain.com

但我无法重定向https://www.some-domain.com

配置文件:

server
{
    listen 443 ssl;

    server_name some-domain.com www.some-domain.com;
 ssl_certificate     /etc/nginx/ssl/some-domain.com.chained.crt;
 ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;

if ($host = https://www.some-domin.com) {
        return 301 https://some-domin.com$request_uri;
    }
}

【问题讨论】:

  • 您能否为some-domain.com 添加您的端口443 服务器支架,以便我们查看问题出在哪里?匿名,ofc。
  • 我想我没有服务器 443,我在服务器 80 中完成了所有操作
  • https 连接到达的地方,让我知道为该主机添加 443 是否适合您:)
  • 好的,我加一下
  • @flaixman 在问题中添加了我的服务器 443 部分,但仍然无法正常工作

标签: nginx redirect https centos no-www


【解决方案1】:

最好将两个服务器括号分开以避免使用“if”。您的问题是您向主机添加了“https://”,而您需要比较的只是 www.some-domain.com。

这个例子比较简单:

#Server bracket for https connections that come with host www.some-domain.com
server
{
    listen 443 ssl;
    server_name  www.some-domain.com;
    ssl_certificate     /etc/nginx/ssl/some-domain.com.chained.crt;
    ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;

    #redirects to https://non-www

    location / {
        return 301 https://some-domin.com$request_uri;
    }
}



# and then you can set a server bracket for non-www https connections.
# nginx will sort the connections depending on host for itself
server
{
    listen 443 ssl;

    server_name some-domain.com;
    ssl_certificate     /etc/nginx/ssl/some-domain.com.chained.crt;
    ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;

    #Here it arrives 443 and without www, do what you wanted here
}

【讨论】:

    猜你喜欢
    • 2018-04-22
    • 1970-01-01
    • 2016-03-10
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 2015-10-23
    相关资源
    最近更新 更多