楼主:
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' *