2012-12-05 95 views
0

我爲cms開發模塊。捕獲所有子域?我的本地主機上的

因此我有很多的URL像這樣:

cart.cfox.dev 
blog.cfox.dev 
orders.cfox.dev 

該地圖可以

/無功/網絡/ CFOX /模塊/購物車
/無功/網絡/ CFOX /模塊/博客
在/ var/WWW/CFOX /模塊/訂單

每次我安裝一個新的模塊,我創建了一個新的VI實際主機。

但他們都改變了一個單詞相同。

我想知道的是,如果有辦法讓一個虛擬主機處理所有這些。

另一種是我的主機文件已滿的

127.0.0.1 cart.cfox.dev
127.0.0.1 blog.cfox.dev
127.0.0.1 orders.cfox.dev

我們可以在那裏做同樣的事情嗎?

回答

1

我認爲處理這些虛擬主機的最佳方式是VirtualDocumentRoot。特別是在Apache 2.4中,據我所知,DocumentRoot已經不錯了。

UseCanonicalName Off 
VirtualDocumentRoot /var/www/cfox/modules/%1 

<Directory "/var/www/cfox/modules/*"> 
    # Apache < 2.4 
    <IfModule !mod_authz_core.c> 
     Allow from all 
    </IfModule> 
    # Apache >= 2.4 
    <IfModule mod_authz_core.c> 
     Require all granted 
    </IfModule> 
</Directory> 

我們可以做同樣的事情呢?

不幸的是,沒有。

+0

我們會怎樣使這個日誌每個它自己的日誌文件(例如cart.error.log) – Hailwood

+0

對不起,你不能有單獨的ErrorLog沒有真正的。 – julp

1

您可以使用mod_rewrite來完成。

設置默認的Apache的虛擬主機與DocumentRoot/var/www和地點有以下.htaccess

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.dev$ [NC] 
RewriteCond %{REQUEST_URI} !^/.+/modules/.+/.*$ 
RewriteRule .* /%2/modules/%1%{REQUEST_URI} [QSA,L] 

當然,你必須確保,你的apache讀取.htaccess文件(AllowOverride