我有几个重新定位,以确保所有域和变体都指向当前的主要位置:
#redirects www
server {
server_name www.blah.net;
return 301 https://blah.org$request_uri;
}
server {
server_name www.blah.co;
return 301 https://blah.org$request_uri;
}
#redirects co and net to org
server {
server_name blah.co;
return 301 https://blah.org$request_uri;
}
server {
server_name blah.net;
return 301 https://blah.org$request_uri;
}
#redirects all traffic to https
server {
listen *:80 default_server;
location / {
return 301 https://$host$request_uri;
}
}
#main server
server {
listen *:443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.blah.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.blah.org/privkey.pem;
root /home/blah/www;
index index.html index.htm;
server_name blah.org blah.co blah.net;
}
问题是我们的热门Google搜索结果有一个指向https://blah.co
的链接,当您点击它时,它会出现证书错误。我了解问题所在,我根本不知道如何修复重定向,以便当有人点击包含https
的链接或输入https://blah.co
时,它会解析为https://blah.org
。
答案 0 :(得分:0)
我觉得这样的事情会起作用。第一个块应该捕获任何非https://blah.org的流量,并重定向它。第二个服务器块只处理blah.org域。
# redirects all non-.org traffic to https
server {
listen *:80 default_server;
listen *:443 ssl;
ssl_certificate /etc/letsencrypt/live/www.blah.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.blah.org/privkey.pem;
server_name _;
location / {
return 301 https://blah.org$request_uri;
}
}
#main server
server {
listen *:443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.blah.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.blah.org/privkey.pem;
root /home/blah/www;
index index.html index.htm;
server_name blah.org;
}