Mod-Rewrite
如何使子目錄成為 Web 域或 localhost 的文件根目錄
我
abc
在文件根目錄中有一個子目錄/var/www/html
我希望能夠
any_file.html
通過在瀏覽器中鍵入來執行子目錄中的任何文件:
localhost/any_file
代替localhost/abc/any_file.html
或my_domain.com/any_file
代替my_domain.com/abc/any_file.html
我試著寫
httpd.conf
:<Directory "/var/www/html/abc"> RewriteEngine On RewriteBase / RewriteRule %{REQUEST_FILENAME} %{REQUEST_FILENAME}\.html </Directory>
但它不起作用。
Options FollowSymLinks
被啟動<Directory>
所以我相信我不需要再寫這個了。有誰知道為什麼以及如何解決它?謝謝。**更新:**我有另一個子目錄
efg
,我需要能夠通過 localhost 訪問它。
在為域聲明 Vhost 時,需要添加:
<VirtualHost *:80> DocumentRoot /var/www/html/abc <Directory /> *your options* </Directory> </VirtualHost>
現在你的
/
將是/var/www/html/abc
如果你的文件結構是這樣的:
/ -abc -edf
您現在將預設訪問 abc 文件夾。如果您還想訪問 edf 文件夾,您有兩種選擇:
- 為 documentroot 為 edf 的子域創建另一個虛擬主機
- 將 edf 文件夾符號連結到 abc
符號連結非常簡單(ln 命令)。要創建另一個虛擬主機,您可以在
sites-available/
文件夾中創建一個新文件或在您的底部添加這些條目sites-available/default
DocumentRoot /var/www/html/efg 伺服器名 efg.mydomain.com
如果您創建了一個新文件,則需要執行:
a2ensite filename
並重新啟動apache。現在,當您訪問子域時(不要忘記將其添加到您的 dns 伺服器)。它將使用 efg 作為它的文件根目錄。