2012-08-09 27 views
0

我在我的文檔根目錄下的三個文件夾 -將URL重定向到DocumentRoot中的文件夾?

localhost/myMainProject/ 
localhost/myMainProjectSubdomain/ 
localhost/myThirdProject/ 

我想做實現以下URL映射 -

www.mymainproject.com ---> localhost/myMainProject/ 
mysubdomain.mymainproject.com ---> localhost/myMainProjectSubdomain/ 
www.mythirdproject.com ---> localhost/myThirdProject/ 

我試圖改變我的hosts文件:

127.0.0.1/myMainProjectSubdomain mysubdomain.mymainproject.com 
127.0.0.1/myMainProject www.mymainproject.com 
127.0.0.1/myThirdProject www.mythirdproject.com 

但這並不奏效。我想我必須創建一些.htaccess文件或某處,但不知道如何工作。

這可能嗎?請指導我如何實現這一目標。謝謝。

回答

1

在文檔根把這個在你的htaccess文件:

RewriteEngine On 

# for www.mymainproject.com 
RewriteCond %{HTTP_HOST} ^(www\.)?mymainproject\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/myMainProject 
RewriteRule ^(.*)$ /myMainProject/$1 [L] 

# for mysubdomain.mymainproject.com 
RewriteCond %{HTTP_HOST} ^mysubdomain.mymainproject\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/myMainProjectSubdomain 
RewriteRule ^(.*)$ /myMainProjectSubdomain/$1 [L] 

# for www.mythirdproject.com 
RewriteCond %{HTTP_HOST} ^(www\.)?mythirdproject\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/myThirdProject 
RewriteRule ^(.*)$ /myThirdProject/$1 [L] 
+0

感謝您的真正的快速反應。這適用於主要URL,即。 www.mymainproject.com,mysubdomain.mymainproject.com和www.mythirdproject.com正確映射。但是,當我嘗試像www.mymainproject.com/index.php這樣的東西不會工作。我必須添加www.mymainproject.com/myMainProject/index.php(我使用的是CodeIgniter,但我不認爲這很重要) – cyclotrojan 2012-08-09 03:19:35

+0

@cyclotrojan該規則特別匹配斜線後的* everything *(使用'^(。*) $'正則表達式),並將其重寫爲'/ myMainProject /'(使用** $ 1 **反向引用追加它)。所以你可以去'www.mymainproject.com/qweadasdwqdasd',它會把請求重寫爲'/ myMainProject/qweadasdwqdasd',即使它不存在。 – 2012-08-09 03:21:48

+0

我仍然有這個映射在我的主機文件127.0.0.1 mysubdomain.mymainproject.com 127.0.0.1 www.mymainproject.com 127.0.0.1 www.mythirdproject.com – cyclotrojan 2012-08-09 03:24:41

0

最後我得到了它的工作:

在hosts文件 -

127.0.0.1 mysubdomain.mymainproject.com 
127.0.0.1 www.mymainproject.com 
127.0.0.1 mymainproject.com 
127.0.0.1 www.mythirdproject.com 
127.0.0.1 mythirdproject.com 

在文檔根 - (如接受的答案中所述)

RewriteEngine On 

# for www.mymainproject.com 
RewriteCond %{HTTP_HOST} ^(www\.)?mymainproject\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/myMainProject 
RewriteRule ^(.*)$ /myMainProject/$1 [L] 

# for mysubdomain.mymainproject.com 
RewriteCond %{HTTP_HOST} ^mysubdomain.mymainproject\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/myMainProjectSubdomain 
RewriteRule ^(.*)$ /myMainProjectSubdomain/$1 [L] 

# for www.mythirdproject.com 
RewriteCond %{HTTP_HOST} ^(www\.)?mythirdproject\.com$ [NC] 
RewriteCond %{REQUEST_URI} !^/myThirdProject 
RewriteRule ^(.*)$ /myThirdProject/$1 [L] 

在我的項目文件夾,我不得不創建另一個.htaccess文件 -

RewriteEngine on 
RewriteCond $1 !^(index\.php|resources|robots\.txt|images|stylesheets|javascript|captcha|js|css|table-images) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

現在URL映射完美!例如,

www.mymainproject.com/welcome - >本地主機/ myMainProject /歡迎

相關問題