I am working on a new website bud I want to create a nice looking urls for my users. I don't know anything of htaccess
and could not find my solution on google.
I need to link:
user.mywebsite.com
to>> mywebsite.com/users/user
user2.mywebsite.com/contact
to>> mywebsite.com/users/user2/contact
Some links may not be linked like:
www.mywebsite.com
may not link to mywebsite.com/users/www
Is this possibe to do with htaccess
?
If yes can someone explain it to me?
Using mod_rewrite, you can try:
RewriteEngine On
# the request URI doesn't already start with /users/
RewriteCond %{REQUEST_URI} !^/users/
# host doesn't start with www
RewriteCond %{HTTP_HOST} !^www\. [NC]
# host starts with something else
RewriteCond %{HTTP_HOST} ^([^\.]+)\.mywebsite\.com$ [NC]
# rewrite
RewriteRule ^(.*)$ /users/%1/$1 [L]
This will make it so when someone enters http://joe.mywebsite.com/some/page.html they will be served the file in /users/joe/some/page.html
Redirecting your old links to new ones.
Redirect user.mywebsite.com mywebsite.com/users/user
Redirect user2.mywebsite.com/contact mywebsite.com/users/user2/contact
You can take a look at VirtualDocumentRoot
e.g. the documents for www.user.isp.com are found in /home/user/.
# include part of the server name in the filenames
VirtualDocumentRoot /www/hosts/%2/docs
# single cgi-bin directory
ScriptAlias /cgi-bin/ /www/std-cgi/