通常我这样做是为了将“DOMAIN.net”重定向到“www.DOMAIN.net”,它运行正常。
<VirtualHost *:8080>
ServerAdmin webmaster@DOMAIN.net
ServerName DOMAIN.net
RedirectPermanent / http://www.DOMAIN.net/
</VirtualHost>
现在,对于一个新项目,我还想将所有子域重定向到www.DOMAIN.net并尝试这样:
<VirtualHost *:8080>
ServerAdmin webmaster@DOMAIN.net
ServerName DOMAIN.net
ServerAlias *.DOMAIN.net
RedirectPermanent / http://www.DOMAIN.net/
</VirtualHost>
但是这让我进入了一个无限重定向的循环,可能是因为* .DOMAIN.net也适用于“www.DOMAIN.net”并且陷入了循环。
我可以以某种方式在Alias中获得异常,以确保不应将www子域重定向到自身吗?
编辑:我想到我也使用nginx,也许在那里完成它会更好。我目前使用
server {
server_name DOMAIN.net;
rewrite ^(.*) http://www.DOMAIN.net$1 permanent;
}
在nginx配置中。如何在nginx配置中重定向所有(但www)子域?
答案 0 :(得分:1)
如果您想在nginx上执行此操作,则需要将配置更改为以下内容:
server {
server_name DOMAIN.net www.domain.net;
if ($host !~* ^www\.) {
rewrite ^(.*) http://www.DOMAIN.net$1 permanent;
}
}
这应该是开箱即用的。遗憾的是,在这种情况下,没有办法避免使用if。