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>
link|improve this question
feedback

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.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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