Redirect Nginx通配符子域重定向到非www
我用通配符子域设置了一个域,用于白标签访问。我试图防止人们输入Redirect Nginx通配符子域重定向到非www,redirect,ssl,nginx,no-www,Redirect,Ssl,Nginx,No Www,我用通配符子域设置了一个域,用于白标签访问。我试图防止人们输入http://www.subdomain.domain.com/但仍在努力寻找解决方案。(我已经进行了重写,以便始终使用安全协议。) 我目前的设置如下(好的,相关部分): 我所取得的成就是http://domain.com和http://sub.domain.com都重定向到https协议,换句话说https://domain.com和https://sub.domain.com。我仍然希望在顶部实现的是这两个http://www.d
http://www.subdomain.domain.com/
但仍在努力寻找解决方案。(我已经进行了重写,以便始终使用安全协议。)
我目前的设置如下(好的,相关部分):
我所取得的成就是http://domain.com
和http://sub.domain.com
都重定向到https
协议,换句话说https://domain.com
和https://sub.domain.com
。我仍然希望在顶部实现的是这两个http://www.domain.com
和https://www.domain.com
重定向到https://domain.com
和这两个http://www.sub.domain.com
和https://www.sub.domain.com
重定向到https://sub.domain.com
有人能帮忙吗
(注:我甚至在考虑应用全局nginx设置来删除同一服务器上运行的所有域的URL的
www
部分,如果这是一个选项。)要从请求的服务器名称中删除前导的www.
序列,请将此if
块放在SSL服务器容器顶部附近(在任何其他URI处理指令之前):
通常情况下,如果,则为,但在这种情况下是完全正确的
server {
listen 80;
server_name domain.com *.domain.com;
rewrite ^ https://$http_host$request_uri? permanent;
}
server {
listen 443;
ssl on;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/certificate.key;
server_name domain.com *.domain.com;
...
}
if ($http_host ~* ^www\.(.*)$ )
{
return 301 $scheme://$1$request_uri;
}