Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I set up some virtual hosts:

website1.com
try.website1.com
website2.com
try.website2.com

Everything works fine, but if I write a wrong third-level like "qwerty.website1.com" or "qwerty.website2.com" I want to redirect the user to the respective domain, and not to a general page.

how can i configure the 000-default? or there is another way to do that?

this is my 000-default:

<VirtualHost *:80>
    ServerAdmin user@user.com
    ServerName 12.123.123.123
    DocumentRoot "/var/www/"

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory "/var/www/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>
share|improve this question
add comment

1 Answer

up vote 0 down vote accepted

Apache searches <VirtualHost> definitions from the start and stops on the first match. You can use this to your advantage.

<Virtualhost *:80>
    ServerName try.website1.com
    .
    .
    .
</VirtualHost>

<Virtualhost *:80>
    ServerName website1.com
    ServerAlias *.website1.com
    .
    .
    .
</VirtualHost>

<Virtualhost *:80>
    ServerName try.website2.com
    .
    .
    .
</VirtualHost>

<Virtualhost *:80>
    ServerName website2.com
    ServerAlias *.website2.com
    .
    .
    .
</VirtualHost>

This will direct try.webste1.com and try.website2.com to their own vhost and anything else in either domain to the the main vhost for that domain.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.