简体   繁体   中英

Named VirtualHost in apache overrides every other VirtualHosts

I have defined two VirtualHosts on Apache, and the problem is, one of them overrides the other one. ie when I try to reach the second address, the first one shows up.

Here is my first config:

ServerName www.example1.com
DocumentRoot /server/sites/example1

<VirtualHost *:80>
    ServerAdmin admin@example1.com
    DocumentRoot /server/sites/example1
    ServerAlias example1.com
    <Directory /server/sites/example1/>
      AllowOverride All 
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

And the second:

ServerName www.example2.tv
DocumentRoot /server/sites/tv/public/

<VirtualHost *:80>
  ServerAdmin admin@example2.tv
  DocumentRoot /server/sites/tv/public    
  <Directory /srver/sites/tv/public>
     # This relaxes Apache security settings.
     AllowOverride all 
     # MultiViews must be turned off.
     Options -MultiViews
  </Directory>
</VirtualHost>

When I load www.example2.tv , it still shows www.example1.com content.

example1 is written in PHP and example2 is Ruby on Rails.

You need to have the ServerName directive inside the VirtualHost configuration ie:

<VirtualHost *:80>
  ServerName www.example2.tv
  ServerAdmin admin@example2.tv
  DocumentRoot /server/sites/tv/public    
  <Directory /server/sites/tv/public>
     # This relaxes Apache security settings.
     AllowOverride all 
     # MultiViews must be turned off.
     Options -MultiViews
  </Directory>
</VirtualHost>

You can examine your configured VirtualHosts using apachectl -S - this will print a list of all the configured VirtualHosts and their corresponding config files

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM