【发布时间】:2020-12-16 12:08:58
【问题描述】:
我在 Nginx 配置中有以下 server 块:
server {
listen 80;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
server_name _;
if ($scheme = http) {
return 302 https://$host$request_uri;
}
location / {
root /frontend/master;
index index.html;
try_files $uri $uri/ /index.html?$query_string;
}
}
所以我已经从 http 重定向到 https。但是如何从www.example.com重定向到example.com这个规则?
UPD:这里最重要的是我们服务中的域是动态的,我们的用户自己注册它们,然后通过 DNS 设置链接它们。所以我需要重定向到非 www 而不将某些域放入 server_name 变量中。
【问题讨论】:
-
这能回答你的问题吗? Nginx no-www to www and www to no-www
-
您需要一个带有“server_name”的单独服务器块,包括 www。然后,重定向到非 www。 Nginx Redirect HTTP to HTTPS and WWW to Non-WWW
-
@Rob @0stone0 伙计们,最重要的是,我们项目业务逻辑中的域是动态的,因此我们的客户可以注册自己的域以通过 DNS 将其链接起来而无需提供服务。所以我不能只将域放在配置中的
server_name变量中。
标签: nginx