apache 通过通配符配置子域名,同时阻止子子域名

apache 通过通配符配置子域名,同时阻止子子域名

我通过通配符与 apache 共同配置了子域名:

<VirtualHost xxx.xxx.xxx.xxx:80>
        ServerName www.example.com
        ServerAlias *.example.com
...

效果很好,只是它还启用了子域名。例如:www.test.server.com

我如何确保只有subdomains有效而subsubdomains无效?

答案1

据我所知,ServerAlias仅支持通配符,不支持正则表达式。你应该使用 来实现mod_rewrite,如下所示:

<VirtualHost xxx.xxx.xxx.xxx:80>
    ServerName www.example.com
    ServerAlias *.example.com

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
    RewriteCond %{HTTP_HOST} ^(?:[^.]+)\.example\.com [NC]
    RewriteRule ^(.*)$ http://example.com$1 [R=301,L,QSA]
</Virtualhost>

相关内容