[問題] 每個目錄都可成為自己的根目錄

作者: 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
作者: Peruheru (還在想)   2016-09-06 16:49:00
因為寫太多懶的改...嗎
作者: Gold740716 (項為之強)   2016-09-06 17:26:00
用 href="sub1/" 或 href="./sub1/" 。用 sed 批次改: sed -i 's#href="/#href="#g' *
作者: xdraculax (首席怪叔叔)   2016-09-07 04:03:00
.htaccess rewrite

Links booklink

Contact Us: admin [ a t ] ucptt.com