2017-09-22 57 views
0

4網站共享相同的代碼庫,每個代碼庫都有唯一的域。某些功能可能因域而異,同樣適用於CSS,Javascript和圖像文件。如何使用共享代碼庫來佈局多站點應用程序

現在什麼是在PHP中獲取信息的首選方式,哪個域被請求?有沒有人可以指出下面提案的優點/缺點,或者提出一個更好的建議?

解決方案1:點的所有4個結構域的相同的index.php,並且經由$_SERVER['SERVER_NAME']

溶液2像1.,一個index.php的所有域獲得域,但通過該域如經由mod_rewrite的查詢參數:

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{HTTP_HOST} ^(.*) [NC] RewriteRule^index.php?site=%1 [QSA,L]

解決方案3:點的4個結構域4個不同的指數PHP中,也許在4個不同的公共FO lders,並在這些index.php文件之上定義域。

這可能聽起來微不足道或者它並不重要,但我想確保選擇最佳解決方案。

回答

1

我們之前已經完成了這項工作,我們爲構建網站而構建了一個框架,該框架支持使用相同的已安裝代碼庫數N個網站。爲此,我們:

  • 擁有所有域指向同一個index.php文件的同一 DocumentRoot的範圍內。
  • 對所有頁面的所有請求指向index.php使用.htaccess 並重寫規則。

然後index.php文件設置環境。我們有一個數據庫表,它將$_SERVER['SERVER_NAME']的結果與請求的站點建立一對多關係。這樣,example.comwww.example.com的請求可以引用一個站點,但example2.com可能引用不同的站點。一旦index.php文件確定要訪問的站點和頁面,它會從數據庫中爲該請求獲取相關信息,然後創建一個名爲$site[]的關聯數組,該數組存儲所有正在創建請求的信息。然後使用此數組來確定要讀取的資產,如CRM中的特定模板,以及要讀取哪些資產用於特定站點和頁面(如CSS,JS等)。

+0

感謝您的回覆,尼克。我會繼續等待更多的反饋。 – Benni

相關問題