redirect to the respective virtual host a wrong third level domain

Posted on

redirect to the respective virtual host a wrong third level domain – Managing your servers can streamline the performance of your team by allowing them to complete complex tasks faster. Plus, it can enable them to detect problems early on before they get out of hand and compromise your business. As a result, the risk of experiencing operational setbacks is drastically lower.

But the only way to make the most of your server management is to perform it correctly. And to help you do so, this article will share nine tips on improving your server management and fix some problem about apache-2.2, virtualhost, , , .

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>

Solution :

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.

Leave a Reply

Your email address will not be published.