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

看板Web_Design作者 (Zoo)時間8年前 (2016/09/06 13:39), 編輯推噓2(2013)
留言15則, 5人參與, 最新討論串1/1
好吧,我知道標題有點火星文,是這樣的: 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則是沒試成功。 有比較好的作法嗎? ~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.161.4.50 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1473140358.A.8B2.html

09/06 13:54, , 1F
<a href="sub1/">,前面的/的意思就是根目錄
09/06 13:54, 1F

09/06 13:59, , 2F
我知道。但不想再更動那麼多連結。
09/06 13:59, 2F

09/06 14:00, , 3F
如何不必更改到 a href 裡的內容?
09/06 14:00, 3F

09/06 14:07, , 4F
那你就只能再生一個domain直接對應到/www/site1/sub1了
09/06 14:07, 4F

09/06 14:08, , 5F
URL解析的規則是,如果你現在的網頁(或是base href指定的)
09/06 14:08, 5F

09/06 14:12, , 6F
的網址是scheme://hostname/path,/開頭的這種url是絕對路
09/06 14:12, 6F

09/06 14:12, , 7F
徑,直接解析成scheme://hostname加上/開頭的網址
09/06 14:12, 7F

09/06 14:13, , 8F
你不想改這網址,那只能生另外一個hostname直接對應到你想
09/06 14:13, 8F

09/06 14:14, , 9F
要的根目錄了
09/06 14:14, 9F

09/06 14:19, , 10F
我是覺得最好的作法就是一樓那個,以現在路徑為準就是相對
09/06 14:19, 10F

09/06 14:20, , 11F
路徑的用途,為什麼硬要用絕對路徑再去想workaround
09/06 14:20, 11F

09/06 16:49, , 12F
因為寫太多懶的改...嗎
09/06 16:49, 12F

09/06 17:26, , 13F
用 href="sub1/" 或 href="./sub1/" 。
09/06 17:26, 13F

09/06 17:29, , 14F
用 sed 批次改: sed -i 's#href="/#href="#g' *
09/06 17:29, 14F

09/07 04:03, , 15F
.htaccess rewrite
09/07 04:03, 15F
文章代碼(AID): #1NpbQ6Yo (Web_Design)
文章代碼(AID): #1NpbQ6Yo (Web_Design)