我们目前有一个通配符虚拟主机接受所有域请求。
我想重定向
subdomain.domain.com
到www.subdomain.domain.com
所以我的通配符将回答
有一个例外,我不想重定向www.domain.com
到www.www.domain.com
如何实现?我已经将其组合在一起(在通配符块之外),但它没有处理异常,也不确定变量的事情
if ($http_host ~ (.*).domain.com) {
set $test P;
}
if ($http_host != www.domain.com) {
set $test "${test}C";
}
if ($http_host != www.*.domain.com) {
set $test "${test}D";
}
if ($test = PCD) {
rewrite ^(.*)$ www.%1.domain.com$1 permanent;
}
谢谢
答案1
我会用这个:
server {
listen 80;
server_name www.example.com example.com;
# this is default server.
...
}
server {
listen 80;
server_name www.*;
# here www.*.example.com
..
}
server {
listen 80 default_server;
return 301 http://www.$host$request_uri;
}