.htaccess: mod-rewrite; subdomain

2019-01-23 10:23发布

问题:

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?

回答1:

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



回答2:

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


回答3:

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/