.htaccess: мод-переписать;подобласть - PullRequest
1 голос
/ 13 декабря 2011

Я работаю над новым сайтом. Я хочу создать красивые URL для моих пользователей.Я ничего не знаю о htaccess и не могу найти свое решение в Google.

Мне нужно связать:

  • user.mywebsite.com до >> mywebsite.com/users/user
  • user2.mywebsite.com/contact до >> mywebsite.com/users/user2/contact

Некоторые ссылки могут быть не связаны, например:

  • www.mywebsite.com может не ссылаться на mywebsite.com/users/www

Возможно ли это сделать с htaccess?Если да, может кто-нибудь объяснить мне?

Ответы [ 3 ]

6 голосов
/ 14 декабря 2011

Используя mod_rewrite, вы можете попробовать:

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]

Это сделает так, что когда кто-то введет http://joe.mywebsite.com/some/page.html, им будет предоставлен файл в / users / joe / some /page.html

0 голосов
/ 13 декабря 2011

Вы можете взглянуть на VirtualDocumentRoot

например. документы для www.user.isp.com находятся в /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/
0 голосов
/ 13 декабря 2011

Перенаправление ваших старых ссылок на новые.

Redirect user.mywebsite.com mywebsite.com/users/user
Redirect user2.mywebsite.com/contact mywebsite.com/users/user2/contact
...