在这个例子中,我在 2 个不同的 CMS 和 5 个不同的域上有 4 个网站。
a.com
sub.a.com
b.com
c.com
在 CMS1
d.com
在 CMS2
http
应该重定向到https
a.com
www.a.com
www.sub.a.com
到sub.a.com
www.b.com
到b.com
www.c.com
到c.com
www.d.com
到d.com
每个域都有自己独立的网站,由其公共 CMS 处理。例如,这意味着,即使b.com
与c.com
使用相同的CMS,管理面板和根目录; 前端提供的页面完全不同。此功能由 CMS 处理。
由于这种配置,我有 2 个 .conf 文件用于 NGINX,一个用于域 ac,一个用于域 d。
问题来了。以下是我到目前为止提出的但并不像我上面概述的那样工作。域www.a.com
-www.c.com
似乎都重定向到sub.a.com
. www.sub.a.com
不会重定向到sub.a.com
. 我看这一切都错了吗?
一个.com.conf
server {
listen 80;
server_name a.com www.a.com sub.a.com www.sub.a.com b.com www.b.com c.com www.c.dom;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name www.a.com www.sub.a.com;
return 301 https://sub.a.com$request_uri;
}
server {
listen 443 ssl;
server_name www.b.com;
return 301 https://b.com$request_uri;
}
server {
listen 443 ssl;
server_name www.c.com;
return 301 https://c.com$request_uri;
}
server {
listen 443 ssl;
server_name a.com sub.a.com b.com c.com;
root /srv/a.com/www;
include snippets/ssl-a.com.conf;
include snippets/ssl-params.conf;
# REST OF CONFIG
}
Run Code Online (Sandbox Code Playgroud)
d.com.conf
server {
listen 80;
server_name d.com www.d.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name www.d.com;
return 301 https://d.com$request_uri;
}
server {
listen 443 ssl;
server_name d.com;
root /srv/d.com/www;
include snippets/ssl-d.com.conf;
include snippets/ssl-params.conf;
# REST OF CONFIG
}
Run Code Online (Sandbox Code Playgroud)
如果要选择用于发出请求的名称,则应使用$host
而不是。有关更多信息,请参阅此文档。$server_name
nginx
例如:
server {
listen 80;
server_name a.com www.a.com sub.a.com www.sub.a.com b.com www.b.com c.com www.c.dom;
return 301 https://$host$request_uri;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7437 次 |
最近记录: |