Apache-2.2
Apache:我可以禁止訪問目錄,除非通過虛擬主機?
如果我們假設我有一個名為的伺服器
machinename.ip
,它解析http://machinename.ip
為預設根 (/var/www/html
),並http://www.example.com
通過 vhosts 文件解析www.example.com
為/var/www/html/example
除了通過虛擬主機之外,是否有一種簡單的方法可以禁止訪問
/var/www/html/example
文件夾(以及任何子目錄/文件) ?即,當通過特定的虛擬主機 url 添加時,您可以訪問它們,這樣會轉到但或任何其他組合不會帶您到那里或任何子目錄?www.example.com``www.example.com``/var/www/html/example``http://machinename.ip/example
例如對於文件
/var/www/html/example/myfile.php
http://www.example.com/myfile.php *yay works*
但
http://machinename.ip/example/myfile.php *does not*
你可以這樣做:在
httpd.conf
<Directory "/var/www/html"> Deny from all </Directory>
然後在
vhosts.conf
文件中的某處添加一些<Directory
標記(像這樣)<VirtualHost...{blah} # | ADD THIS # v <Directory "/var/www/html/example"> AllowOverride None Order allow,deny Allow from all </Directory> # ^ # | ADD THIS {...blah near where you may have something like...} DocumentRoot /var/www/html/example ServerAlias example.com </VirtualHost>
你必須為你所有的虛擬主機做這些塊,但如果你準備好忍受它,這將做到