htaccess мод переписать на поддомен - PullRequest
6 голосов
/ 29 сентября 2011

Я использую следующее, чтобы перенаправить поддомены в соответствующие папки:

RewriteCond %{REQUEST_URI} !^/users/ [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteCond %1 !=www [NC]
RewriteRule ^(.*)$ /users/%1/$1/? [L]

Я хотел бы добавить правило перезаписи, которое перенаправляет любого, кто обращается к прямому / users / path обратно к версии субдомена, как это:

www.domain.com/users/username/../../ => username.domain.com/../../

Заранее спасибо!

1 Ответ

10 голосов
/ 30 сентября 2011

Примерно так:

RewriteEngine On

RewriteCond %{http_host} ^domain.com [nc]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,NC]

RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^users/([a-z0-9\-_\.]+)/?(.*)$ http://$1.domain.com/$2 [QSA,NC,R,L]

У вас есть другие правила, чем те, которые перечислены в вопросе? если да, поставьте их перед другим.

например:

http://www.domain.com/users/abc?q=test => http://abc.domain.com/?q=test
http://www.domain.com/users/abc/sub1/sub2 => http://abc.domain.com/sub1/sub2
http://www.domain.com/users/abc/sub1/?q=test => http://abc.domain.com/sub1/?q=test
...