2014-01-19 95 views
1

我開始管理一個Apache Web服務器,而且我的經驗很少。我有兩個有兩個不同域(a.com,b.com)的網站。一個服務器中的兩個站點/兩個域

A.com文件位於服務器根文件夾(/htdocs),我已經爲該域配置了.htaccess文件。

B.com位於服務器根目錄(/htdocs/b/)內的子文件夾中。

因此,根據「傳入」請求域,我想以某種方式更改服務器上的文件夾(使用.htaccess也許?)。

我一直在閱讀一些材料這一點,如this tutorialApache guide,這blog post,甚至爲此StackOverflow question,但似乎迄今已經奏效。

更改.htaccess是正確的做法嗎?我可以在沒有用戶注意到文件夾已更改(保持爲「b.com」而不是「b.com/b」)的情況下執行mod_rewrite嗎?

在此先感謝!

回答

2

您可以將此代碼在DOCUMENT_ROOT/.htaccess文件:

RewriteEngine On 

# if host is b.com 
RewriteCond %{HTTP_HOST} ^(www\.)?b\.com$ [NC] 
# silently forward to folder /b/ if not already /b/ 
RewriteRule !^b(/|$) /b%{REQUEST_URI} [L,NC] 

PS:雖然這將是更好地改變你的VistualHost配置和設置/htdocs/b/DocumentRootb.com網站。

+0

謝謝!它似乎正在重定向到正確的文件夾!但是,它會變回a.com/b,而不是b.com。我猜這與其他.htaccess規則在同一個文件中有關係,也許呢?任何想法如何解決這個問題? (我應該在這裏發佈我的.htaccess文件嗎?) 關於虛擬主機,我從來沒有嘗試過,我會看看另一種方式!非常感謝! – Sagito

+0

我只是想出了VirtualHost,你是對的,這完全是最好的選擇!非常感謝你,問題解決了! :) – Sagito

+0

不客氣,很高興它解決了。 – anubhava