Apache-2.2
在不使用符號連結的情況下在 Apache 中創建虛擬目錄的正確方法是什麼?
我來自 IIS,在那裡設置虛擬目錄非常容易。您只需右鍵點擊並添加一個指向您喜歡的任何路徑的“虛擬目錄”。查看站點時,此相對路徑會通過瀏覽器反映出來。
我如何用 Apache 完成同樣的事情?符號連結讓我害怕,因為刪除級聯。有沒有更好的方法在 Apache 中創建虛擬目錄?我正在使用 MAMP for Mac,它使用 apache2。
使用
Alias
Apache 配置文件中的指令。Alias /virtual-dir /var/www/foo
此外,
rm -r
不會遍歷符號連結,也不會級聯。
如果您將多個域指向同一個公共 html 目錄,並且實際內容位於公共 html(Web 根目錄)之外,則可以分兩步執行此操作:
- 重寫每個域的目錄,例如
<VirtualHost 127.0.0.1:80> ServerName host_one.ca RewriteEngine On RewriteRule "/?images(.*)" "/www/shared/host_one/images/$1" [NC] </VirtualHost> <VirtualHost 127.0.0.1:80> ServerName host_two.ca RewriteEngine On RewriteRule "/?images(.*)" "/www/shared/host_two/images/$1" </VirtualHost>
2)然後添加符號連結(或者,別名)
ln -s /shared/host_one/images /www/html/images/host_one ln -s /shared/host_two/images /www/html/images/host_two
小心點。可以通過 host_one 訪問 host_two 圖像: domain_one.ca/images/host_two/{filename}
除非您添加其他規則以刪除目前主機目錄中的任何內容。對於 host_one VirtualHost(我沒有確認此規則是否有效):
# prevent showing content from other hosts RewriteRule "/?images/!(host_one/.*)" /404 [NC,L]