CentOs Nginx重定向https://www 至https://

CentOs Nginx重定向https://www 至https://,nginx,redirect,https,centos,no-www,Nginx,Redirect,Https,Centos,No Www,我正在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-d

我正在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;
    }
}

最好将两个服务器括号分开,以避免使用“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
}

您能否为添加端口443服务器支架,以便我们可以看到问题出在哪里?匿名,ofc。我想我没有443服务器,我在80T服务器上做了所有的事情,https连接到达的地方,让我知道为那个主机添加443是否适合你:)当然,让我添加it@flaixman在问题中添加了“我的服务器443”部分,但仍然无法正常工作