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.
What about main subdomain, will it work or do I have to give always argument?
The rewrite rule should work for any domain name, it does not matther if its a second or third level domain.
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.
I too find this to be a bogus rule and does not work
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.
If you want to keep the subdomain in the browser bar, you have to add a [P] tag (for proxy).
RewriteEngine on
RewriteCond %{HTTP_HOST} ^sub.domain.tld [NC]
RewriteRule ^/(.*)$ /sub/$1 [P,L]
Thanks man, I have the whole day trying to figure out, but it turns out that simple.