Назад | Перейти на главную страницу

apache настраивает поддомены через подстановочный знак, предотвращая при этом поддомены

У меня есть поддомены, настроенные с помощью apache через подстановочный знак:

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

Это работает отлично, за исключением того, что также включает поддомены. Например: www.test.server.com

Как я могу убедиться только subdomains действительны и subsubdomains не?

НАСКОЛЬКО МНЕ ИЗВЕСТНО, 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>