2012-09-02 97 views
1

我花了最近2天搜索和了解.htaccess將所有子域重定向到用戶文件夾 而不更改網址,但我一直有3個小問題。我真的很希望得到一些幫助mod_rewite .htaccess子域名重定向

問題1)

如果我去http://www.domain.com/users/foo它會自動重定向 網址http://foo.domain.com/但如果我去http://www.domain.com/users/foo/dashboard.php 它什麼也不做,而不是重定向到http://foo.domain.com/dashboard.php

這是我使用的代碼:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /users/(.+)/\ HTTP/ 
RewriteRule ^users/([^/]+)/(.*)$ http://$1.domain.com/$2 [R=301,L] 

問題2)

如果我去http://foo.domain.com/dashboard.php

它從http://www.domain.com/users/foo/dashboard.php

其信息,但如果我在地址欄中(在Firefox)型foo.domain.com它(有時)自動重定向 到www.foo.domain.com,我可以防止www字首?

這是代碼

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

問題3)

活動網站是文件夾http://www.domain.com/website在locaded而應 的URL http://www.domain.com/可見的(就像我從http://www.domain.com/users/foo 上的信息網址http://foo.domain.com/)。

我真的很感激的幫助,感謝

回答

0

關於問題的一個,我只想檢查主機:

RewriteCond %{HTTP_HOST} ^www.domain.com$ 
RewriteRule ^users/([^/]+)/(.*)$ http://$1.domain.com/$2 [R=301,L] 

關於問題第二,這是一個修改規則,這是我從Drupal的.htaccess文件有:

# remove www prefix 
RewriteCond %{HTTP_HOST} ^www\.(.+)\.domain\.com$ [NC] 
RewriteRule^http://%1%.domain.com{REQUEST_URI} [L,R=301] 

# redirect to the subdirectory 
RewriteCond %{HTTP_HOST} !^www\.(.+)\.domain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC] 
RewriteRule^user/%1%{REQUEST_URI} [L,R=301] 

關於你的第三個問題,檢查這一個位置:

RewriteCond %{HTTP_HOST} ^www.domain.com$ 
RewriteRule ^(.*)$ website/$1 [R=301,L]