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

Как настроить apache для перекрывающихся псевдонимов виртуального хоста?

У меня есть настройка для разработки поддоменов с apache / wamp, все работает так, как мне нужно, с «обычной» настройкой и отдельно с настройкой «xyz», но мне приходится менять конфигурацию и перезапускать сервер каждый раз, когда мне нужна другая настройка .

Есть ли способ, чтобы обе настройки работали одновременно?

Я ищу ответ, который позволит мне получить доступ к обеим настройкам одновременно, не меняя URL-адреса или порты, которые я использую для доступа к ним.

это моя обычная установка

<VirtualHost *:9090>
    ServerName localhost.com
    ServerAlias *.localhost.com
    VirtualDocumentRoot u:\wamp\www\subdomains\%1
    <directory "u:\wamp\www\subdomains\%1">
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from all
    </directory>
</VirtualHost>

Это моя вторичная (xyz) установка

<VirtualHost *:9090>
    ServerName localhost.com
    ServerAlias *.xyz.localhost.com
    VirtualDocumentRoot u:\wamp\www\subdomains\xyz
    <directory "u:\wamp\www\subdomains\xyz">
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from all
    </directory>
</VirtualHost>

Вы не совсем правильно подходите к этому.

ServerName и ServerAlias ​​в некоторой степени избыточны. ServerName предоставляет «основное» имя виртуального хоста, которое идентифицирует его там, где это требуется. ServerAlias ​​предоставляет другие имена, которые соответствуют виртуальному хосту.

ServerName также не обязательно должно быть фактическим именем хоста (с полным доменным именем) сервера. Он может быть произвольным, а может быть разным для всех ваших виртуальных хостов.

Предполагая, что вы используете www.localhost.com получить доступ к одному серверу и www.xyz.localhost.com чтобы получить доступ к другому, вы можете просто использовать localhost.com и xyz.localhost.com для параметра ServerName и оставьте те же подстановочные знаки. Однако имейте в виду, что xyz.localhost.com затем перейдет к тому из этих виртуальных хостов, который появится первым (имя файла которого идет первым в лексическом порядке).

В качестве примечания не используйте доменные имена, которые вам не принадлежат. Если вы намереваетесь скрыть реальный домен в целях документации, используйте example.net.