2016-10-04 120 views
0

我對系統管理的經驗非常有限,我目前正在嘗試將路由/寫入(這是適當的術語)子域到頂級域。例如,我有一個名爲bar.com的域名,並且我創建了許多子域名,例如foo.bar.com。我希望foo.bar.com能夠解析我也擁有的foo.com。 Foo.com有一個A記錄,指向foo.bar.com所在的IP地址。用虛擬主機重寫URL

如果聽起來我沒有正確描述這是因爲我仍然在學習這一切如何工作。

以下是foo.bar.com虛擬主機文件。

foo.conf:

<VirtualHost 127.0.0.1:81> 
    Define DOCUMENT_ROOT /PATH/TO/PUBLIC/APP 
    Define PHP_PORT 22844 
    Define PHP_PROXY_URL fcgi://127.0.0.1:${PHP_PORT} 

    ServerAdmin [email protected] 
    DocumentRoot ${DOCUMENT_ROOT} 
    ServerName server-foo 
    ServerAlias foo.bar.com 
    ServerAlias www.foo.bar.com 

    ErrorLog "/PATH/TO/error.log" 
    CustomLog "/PATH/TO/access.log" common 
</VirtualHost> 

我的問題是如何將修改這個文件來讓這個foo.bar.com解析爲foo.com。

回答

0

這聽起來像你正在尋找一種在虛擬主機中重定向的方式。

如果是這種情況,那麼您應該可以在虛擬主機中使用mod_rewrite來完成此操作。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^foo\.bar\.com$ [NC] 
RewriteRule ^(.*) http://foo.com/ [L,R] 

這線程可能會有所幫助:https://serverfault.com/a/120507

編輯:要讓foo.com是主要的URL,使用類似下面。

<VirtualHost 127.0.0.1:81> 
    ServerName foo.bar.com 
    ServerAlias www.foo.bar.com 

    Redirect "/" "http://foo.com/" 
</VirtualHost> 

<VirtualHost 127.0.0.1:81> 
    Define DOCUMENT_ROOT /PATH TO CURRENT FOO.BAR.COM/ 
    [your other settings] 

    ServerName foo.com 
</VirtualHost> 
+0

我不這麼認爲。這更像是如果您輸入foo.bar.com,foo.com會在網址欄中解析,但網站foo.bar.com是瀏覽器中顯示的內容。我希望這是有道理的。 – Hossam

+0

啊,我明白了。看起來你需要一個foo.com的虛擬主機,它指向foo.bar.com目前指向的目錄。然後,您需要添加foo.bar.com的別名(或者,如果您希望URL欄始終讀取foo.com,則使用重定向規則) – 2016-10-04 20:50:56