0

通常我这样做是为了将“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”并陷入循环。

我可以以某种方式在别名中获取异常以确保不应将 www-subdomain 重定向到自身吗?

编辑:我刚想到我也使用 nginx,也许在那里完成它会更好。我目前使用

server {
        server_name DOMAIN.net;
        rewrite ^(.*) http://www.DOMAIN.net$1 permanent;
}

在 nginx 配置中。如何在 nginx 配置中重定向所有(除了 www)子域?

4

1 回答 1

1

如果要在 nginx 上执行此操作,则需要将配置更改为以下内容:

server {
    server_name DOMAIN.net www.domain.net;
    if ($host !~* ^www\.) { 
        rewrite ^(.*) http://www.DOMAIN.net$1 permanent;
    }
}   

这应该开箱即用。可悲的是,在这种情况下无法避免使用 if。

于 2013-05-03T14:10:34.180 回答