網站通常都是通過域名來直接訪問的,但是有一些網站可能存在多個站點,例如英文站點或者其他語言的站點,通常來說實現多個站點只需要創建多個網站就可以了,但是這樣的話會有一些問題,首先就是資源浪費,重復的太多,第二個就是管理起來比較麻煩相當于管理多個站點,配置的時候就需要配置多次,那么如何實現一個網站,實現多個站點的效果呢,一般都是通過文件夾來時間例如:官網的地址 m.tongyilingma.com 在創建一個英文站點,把入口文件放到EN文件夾里,通過m.tongyilingma.com/en 這樣就可以實現一個網站,多個子網站。這樣挺好的,但是會有一個問題,如果用戶想要使用二級域名來訪問子站點的時候,例如 用en.cnwenhui.cn 來訪問英文站點,這樣的話感覺是不是就只能在創建一個新網站來實現。
問題來了,如何使用en.cnwenhui.cn來訪問m.tongyilingma.com/en,如果可以的話,那么我們的問題就解決了。
解決的方法也有,要實現訪問 en.cnwenhui.cn時實際指向 www.cnwenhui.cn/web2,需修增加二個 nginx server 的配置。以下是具體步驟和優化后的配置:
修改點說明:
修改根目錄:將 root 路徑直接指向 /www/wwwroot/m.tongyilingma.com/public/web2。
獨立日志文件:為英文站點單獨設置日志,避免混淆。
保留其他配置:如 SSL、PHP、重寫規則等設置保持不變。

這樣就可以在訪問的時候,訪問地址是/en目錄了。但是這樣確實可以實現跳轉的問題,但是打開的頁面里面由于使用的是相對路徑,所以導致了所有頁面里面資源文件路徑都不對加載不出來
當訪問 en.cnwenui.cn 時,雖然內容來自 /en子目錄,但頁面內的資源路徑(如圖片、CSS等)仍然指向 www.cnwenui.cn 的絕對路徑,導致資源加載失敗。
解決方案:重寫資源路徑 + 獨立資源目錄 這樣就解決了所有的問題




