目前我正在运营一个网站
centOS7上的Nginx / 1.6.3
除了一些重定向外,一切都运行顺畅.
这是我的.conf文件的样子:
server {
listen 443 ssl spdy default deferred;
server_name .example.com;
... more configs
}
server {
listen 80;
server_name .example.com;
return 301 https://example.com$request_uri;
}
我想要完成的是以下场景:
user visits in browser | this should happen
------------------------------------|-------------------------------------
https://example.com$request_uri | Just deliver content
https://*.example.com$request_uri | 301 https://example.com$request_uri
https://123.123.123.123$request_uri | 301 https://example.com$request_uri
http://example.com$request_uri | 301 https://example.com$request_uri
http://*.example.com$request_uri | 301 https://example.com$request_uri
http://123.123.123.123$request_uri | 301 https://example.com$request_uri
最佳答案
请检查以下配置运行,这应该工作.
#This would serve all your content.
server {
listen 443 ssl spdy default deferred;
server_name example.com;
... more configs
}
#https calls to anything except example.com would be redirected here
server {
listen 443 ssl spdy default deferred; #(Can also use only : "listen 443;")
server_name *.example.com 123.123.123.123;
return 301 https://example.com$request_uri;
}
#All port 80 redirection to https://example.com
server {
listen 80;
server_name example.com *.example.com 123.123.123.123;
return 301 https://example.com$request_uri;
}