網(wǎng)站通常都是通過域名來直接訪問的,但是有一些網(wǎng)站可能存在多個站點,例如英文站點或者其他語言的站點,通常來說實現(xiàn)多個站點只需要創(chuàng)建多個網(wǎng)站就可以了,但是這樣的話會有一些問題,首先就是資源浪費(fèi),重復(fù)的太多,第二個就是管理起來比較麻煩相當(dāng)于管理多個站點,配置的時候就需要配置多次,那么如何實現(xiàn)一個網(wǎng)站,實現(xiàn)多個站點的效果呢,一般都是通過文件夾來時間例如:官網(wǎng)的地址 m.xcyouyuan.com.cn 在創(chuàng)建一個英文站點,把入口文件放到EN文件夾里,通過m.xcyouyuan.com.cn/en 這樣就可以實現(xiàn)一個網(wǎng)站,多個子網(wǎng)站。這樣挺好的,但是會有一個問題,如果用戶想要使用二級域名來訪問子站點的時候,例如 用en.cnwenhui.cn 來訪問英文站點,這樣的話感覺是不是就只能在創(chuàng)建一個新網(wǎng)站來實現(xiàn)。
問題來了,如何使用en.cnwenhui.cn來訪問m.xcyouyuan.com.cn/en,如果可以的話,那么我們的問題就解決了。
解決的方法也有,要實現(xiàn)訪問 en.cnwenhui.cn時實際指向 www.cnwenhui.cn/web2,需修增加二個 nginx server 的配置。以下是具體步驟和優(yōu)化后的配置:
修改點說明:
修改根目錄:將 root 路徑直接指向 /www/wwwroot/m.xcyouyuan.com.cn/public/web2。
獨立日志文件:為英文站點單獨設(shè)置日志,避免混淆。
保留其他配置:如 SSL、PHP、重寫規(guī)則等設(shè)置保持不變。
這樣就可以在訪問的時候,訪問地址是/en目錄了。但是這樣確實可以實現(xiàn)跳轉(zhuǎn)的問題,但是打開的頁面里面由于使用的是相對路徑,所以導(dǎo)致了所有頁面里面資源文件路徑都不對加載不出來
當(dāng)訪問 en.cnwenui.cn 時,雖然內(nèi)容來自 /en子目錄,但頁面內(nèi)的資源路徑(如圖片、CSS等)仍然指向 www.cnwenui.cn 的絕對路徑,導(dǎo)致資源加載失敗。
解決方案:重寫資源路徑 + 獨立資源目錄 這樣就解決了所有的問題