2012-02-22 64 views
0

我有一個目錄結構,包含目錄'web'下的文件,它代表一個白標籤網站(html文件,圖像,js等)。 我也有大約20個不同的'品牌',我們稱之爲'網絡1','網絡2'等,每個包含特定文件,應該覆蓋特定品牌的'網頁'文件。白色標記靜態網站的最佳做法?

Apache配置爲在文檔根'website-i'中找到每個虛擬站點i的文件。 爲了讓每個'網站-i'包含'web'這樣的內容並覆蓋品牌'web-i',我的構建腳本首先將所有'web'複製到'website-i',然後覆蓋它與來自'web-i'的源文件。

有幾個問題這種方法:

  1. 這需要時間來複制文件。
  2. 需要大量磁盤空間
  3. 添加新品牌需要添加到腳本中。

是否有在不需要複製文件的方式這樣做的最佳做法? (與Apache和Linux)

+0

我想過的兩個解決方案我不喜歡: 1.使用重定向。 2.爲所有文件創建鏈接,而不是複製它們。 – 2012-02-22 13:13:31

回答

0

那麼,最好的解決方案是非常簡單的服務器端代碼,但我會假設你已經拒絕了,也許是因爲你沒有權限運行代碼服務器(儘管如果你黑客配置,那麼你可能會這樣做)。

只是在配置一個解決方案可能是讓它從默認的根服務,但如果該文件中的適當的目錄存在重寫URL ...

RewriteCond /web-1/a_file -f 
RewriteRule ^(.*)$ /web/$1 

但你必須做這適用於每個品牌的每個文件。如果文件存儲在與主機名相同的目錄中,但對於我來說太複雜了,您可能會更聰明些。

嚴重的是,服務器端代碼是走在這條路上...

奇怪的是,一位同事是幾乎完全一樣的情況幾周前,他最終改寫了它作爲PHP 。每個網站都是一個數據庫中的一行,其中一個頁面用於提取已更改的文本併爲圖像提供網址等,如果沒有任何內容,則會回到默認值。

說了這麼多。正如你上面所說的,使用鏈接解決了問題2,可能大部分是1,我不認爲有任何方法3。

相關問題