2015-08-29 2 views
0

Я хочу любой домен чтобы указать CNAME на моем виртуальном хосте одновременно для этого я используюнесколько псевдонимов для нескольких виртуальных хоста одновременно HTTPd

ServerAlias * 

в моем виртуальном хосте одновременно, но он работает только с одной виртуальным хостом, если добавить его в обеих CNAME указала на второй призрак, который доставляет удовольствие от первого vhost.

e.g: 
1st: files.domain.com CNAME to files.example.com 
2nd: r.domain.com CNAME to r.example.com 

но второй один также служит files.example.com

Мои httpd.conf имеет эти два виртуальных доменов

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/files.example.com 
    ServerName files.example.com 
    ErrorLog /var/www/files.example.com/logs/error_log 
    CustomLog /var/www/files.example.com/logs/custom_log common 
    <Directory "/var/www/files.example.com"> 
     Options FollowSymLinks 
     AllowOverride All 

     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/r.example.com 
    ServerName r.example.com 
    ErrorLog /var/www/r.example.com/logs/error_log 
    CustomLog /var/www/r.example.com/logs/custom_log common 
    <Directory "/var/www/r.example.com"> 
     Options FollowSymLinks 
     AllowOverride All 

     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

ответ

1

Вы должны добавить ServerAlias ​​линии

ниже ServerName files.example.com добавить ServerAlias files.domain.com

и ниже ServerName r.example.com добавить ServerAlias r.domain.com

В вашем случае апач использует files.example.com как значение по умолчанию виртуальный хост, потому что это первый один.

+0

это работает только для данного ServerAlias. но я хочу, чтобы любой домен указывал CNAME. –

+0

CNAME и Vhosts полностью разделены. Apache не знает, добавите CNAME в DNS. вы можете добавить * .domain.com CNAME к файлам.example.com , а затем определить по умолчанию vhost сначала в apache, а затем другие, такие как file.domain.com. Затем вы получаете дефолтный хост во всех других доменах, чем files.domain.com –

+0

Ну, я получил его, назначив отдельный ip для этого vhost и используя * в ServerAlias. он работал, как я ожидал –

0

Я решил эту проблему, установив специальный IP на виртуальный хост, где я хочу ServerAlias ​​ быть *, и она работала

<VirtualHost 192.168.1.55:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/r.example.com 
    ServerName r.example.com 
    ServerAlias * 
    ErrorLog /var/www/r.example.com/logs/error_log 
    CustomLog /var/www/r.example.com/logs/custom_log common 
    <Directory "/var/www/r.example.com"> 
     Options FollowSymLinks 
     AllowOverride All 

     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 
Смежные вопросы