作者:
wanzoo (Zoo)
2016-09-06 13:39:15好吧,我知道標題有點火星文,是這樣的:
apache網站的根目錄為/www/
根目錄下有兩個目錄,每個目錄都是一個獨立的網站,比如
/www/site1
/site1/sub1
/www/site2
/site2/sub1
site1的index.html,有一行是<a href="/sub1/">,
但是這個連結會失效,因為apache會去/www/下找/sub1/,而不是在site1/下的/sub1/。
我知道直接在 a href 裡填入/site1/sub1即可,但就是不方便這麼做,
因為常常要把網站搬到不同的目錄,
不想要每搬一次就改一次網頁內容,僅管有辦法快速批次更動就是了。
試過在head裡填入 base href的作法,但只會對檔案生效,無法用於目錄。
虛擬主機的話,我用的是nas,所以只能更換埠號,無法建一個虛擬資料夾。
.htaccess則是沒試成功。
有比較好的作法嗎?
~
作者:
ssccg (23)
2016-09-06 13:54:00<a href="sub1/">,前面的/的意思就是根目錄
作者:
wanzoo (Zoo)
2016-09-06 13:59:00我知道。但不想再更動那麼多連結。如何不必更改到 a href 裡的內容?
作者:
ssccg (23)
2016-09-06 14:07:00那你就只能再生一個domain直接對應到/www/site1/sub1了URL解析的規則是,如果你現在的網頁(或是base href指定的)的網址是scheme://hostname/path,/開頭的這種url是絕對路徑,直接解析成scheme://hostname加上/開頭的網址你不想改這網址,那只能生另外一個hostname直接對應到你想要的根目錄了我是覺得最好的作法就是一樓那個,以現在路徑為準就是相對路徑的用途,為什麼硬要用絕對路徑再去想workaround
用 href="sub1/" 或 href="./sub1/" 。用 sed 批次改: sed -i 's#href="/#href="#g' *