如何强制重定向www到非www的SSL子域
问题描述:
如果有人愿意向我提供关于如何让NGINX发挥出色的技巧,我会很高兴。我想重定向https://www.subdomain.domain.com,但不幸的是,现在还不适合我。如何强制重定向www到非www的SSL子域
请注意以下几点设立NGINX,我在的/ etc/nginx的/网站可用/默认
server {
listen 443 ssl;
server_name subdomain.domain.com;
ssl_certificate /etc/letsencrypt/live/subdomain.domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/subdomain.domain.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-$
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
server_name subdomain.domain.com; # Replace with your domain
root /home/dropshare/public_html;
index index.html index.htm;
client_max_body_size 10G;
location ~ /.well-known {
allow all;
}
}
server {
listen 80;
server_name subdomain.domain.com;
return 301 https://subdomain.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name subdomain.domain.com;
return 301 https://subdomain.domain.com$request_uri;
}
答
你的配置是无效的,由nginx的拒绝。
你有两个相同的虚拟服务器:
server {
listen 443 ssl;
server_name subdomain.domain.com;
...
server {
listen 443 ssl;
server_name subdomain.domain.com;
,其中一人只是重定向到自身:
server {
listen 443 ssl;
server_name subdomain.domain.com;
return 301 https://subdomain.domain.com$request_uri;
}
我不明白,你已经尝试重定向'www.subdomain。 domain.com'? –
无论如何,首先你**必须拥有有效的域名“www.subdomain.domain.com”的证书。 –
你的配置文件或你的问题有点混乱。您在最后一个服务器块(我假定它是“www.subdomain.domain.com”)中的一个“服务器”块和“server_name subdomain.domain.com”中有'server_name'指令的重复,请编辑您的问题并澄清。 –