How can I create a rewrite rule which rewrites the browser url such that requests to www.domain.net/sub
is always shown as sub.domain.net
?
No redirection of the page is needed.
How can I create a rewrite rule which rewrites the browser url such that requests to www.domain.net/sub
is always shown as sub.domain.net
?
No redirection of the page is needed.
If I understand you correctly, what you want is this:
If so, you must have a redirect. That's the way to do the change in the address bar. You can't just edit the browser address bar on somebody else's computer.
So the first thing you do is the redirect as posted by LogicWreck. Then you add a VirtualHost entry either to your httpd.conf or your .htaccess file, containing something like
<VirtualHost *:80>
DocumentRoot /path/to/webfiles/sub
ServerName sub.domain.net
</VirtualHost>
and probably some more directives; have a look at httpd.apache.org You could also add another rewrite rule to find the files under the correct directory, but generally speaking a normal VirtualHOst would be better.
If you want to use a rewrite rule instead of VirtualHost, you would do something like this:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(sub.domain.net)$
RewriteRule /(.*) /path/to/webfiles/sub/$1
But I would recommend the VirtualHost route; that's the normal way of doing something like this.
You just need to create a .htaccess in the /sub directory of www.domain.net/sub with the next contents:
RewriteEngine on
RewriteRule ^(.*)$ http://sub.domain.net/$1 [R=301]
@Jenny D is correct that you need a virtual host answering to sub.domain.net
before you start this, and also that the browser does need to be redirected - there's no other way to change what appears in the browser's address bar.
The redirect you need, however, does not require mod_rewrite
. Visit the "When Not to Use Rewrite" wiki page and you'll find the much lighter and simpler method:
Redirect sub/ http://sub.domain.net/