Redirect a subdomain with apache mod_rewrite and keep the URL in the address bar

Friday, October 16, 2009 posted by Till

If you want to redirect a subdomain like sub.domain.tld into a subdirectory of the website and keep the original URL in the browser location bar, you may use the following apache directives.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.tld [NC]
RewriteRule ^/(.*)$ /sub/$1 [L]

This rewrite rule can be added into a .htaccess file in the website root or inside the vhost file. If you use ISPConfig 2 or 3, you can add this also into the apache directives field in the website settings.

Replace sub.domain.tld with the subdomain that shall be redirected and /sub/ with the path to the directory were the pages for this subdomain are located.

Be Sociable, Share!



5 Responses to “Redirect a subdomain with apache mod_rewrite and keep the URL in the address bar”

  1. fotka says:

    What about main subdomain, will it work or do I have to give always argument?

  2. Till says:

    The rewrite rule should work for any domain name, it does not matther if its a second or third level domain.

  3. rick says:

    sorry for my bad english , i have the same problem, i create a sub-domain using cpanel , and redirect to link ie: http://domain.com/index.php?123456789 , but i want to keep http://sub.domain.com in the url bar, but i follow the rule you show, cant work.

  4. Rickkee says:

    I too find this to be a bogus rule and does not work

    • Till says:

      The rule works fine. If it downt work on your system then you either made a typo somewhere or you specified a wrong (sub)domain.

Leave a Reply