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