我通过通配符与 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>