我有一个http / https配置,但有一个问题,我们的营销团队询问有关URL中没有www的问题。当用户导航到example.com时,该节将它们重定向到https://www.example.com,但如果他们输入https://example.com该网站加载但网址中现在有www。这显然搞乱了SEO统计数据等。 我尝试在HTTPS服务器条目上添加重定向,但它最终只会引发重定向循环。 我在下面粘贴了配置。我不完全确定为什么会这样做我会感激任何想法。
server {
listen 443 ssl http2;
server_name .example.com;
############################################
Tested redirect not working
return 301 $scheme://www.example.com$requets_uri;
##################################################
<ssl cert config here>
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass "http://127.0.0.1:3000";
}
}
server {
listen 80;
server_name .example.com;
return 301 https://www.example.com$request_uri;
}
答案 0 :(得分:1)
尝试使用:
# Main server
server {
listen 443 ssl http2;
server_name www.example.com;
...
}
# Redirects all subdomains to www.example.com
server {
listen 80;
# Uncomment if needed
# listen 443 ssl http2;
# <ssl cert config here>
server_name *.example.com;
return 301 https://www.example.com$request_uri;
}
答案 1 :(得分:0)
伊万,
我重读了你的评论,我实际上没有按照你的建议实施它。我编辑了我的配置以反映略有不同,因为我正在监听ssl,因为我有一个单独的80节重定向节。
这解决了我的问题,谢谢你的帮助。