apache虛擬目錄配置實例
一、首先,開啟虛擬主機配置
在文件httpd.conf中找到:
include conf/extra/httpd-vhosts.conf #開啟
二、對httpd-vhost.conf文件進行配置
Java代碼
//監聽端口,NameVirtualHost <VirtualHost>標簽依靠這個哦
NameVirtualHost *:80
<VirtualHost *:80>
ServerName testa.com
DocumentRoot "/var/www/test.com"
<Directory "/var/www/test.com">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog "/var/log/httpd/error_test.log"
CustomLog "/var/log/httpd/comm_test.log" common
</VirtualHost>
三、本地host中添加域名 IP 對應關系(單IP多域名時可用不同端口來完成)
httpd.conf是Apache的主要配置文件,但是針對每個目錄,apache還允許在它們各自的目錄下放置一個叫做.htacess的文件,用於控制這個目錄的屬性。
可以利用Apache的rewrite模塊配置apache URL重寫,rewrite規則會寫在.htaccess文件裡。
但要使apache 能夠正常讀取.htaccess的內容,就必須對.htaccess所在目錄進行配置。
基於安全性考慮,根目錄的AllowOverride屬性一般都配置成 “None”,不允許任何Override ,即:
Java代碼
<Directory />
AllowOverride None
</Directory>
AllowOverride 設置為 None 時,.htaccess 文件將被完全忽略。當此指令設置為All時,所有具有“.htaccess” 作用域的指令都允許出現在.htaccess 文件中。
而對於 URL rewrite 來說,至少需要把目錄設置為:
Java代碼
<Directory /blogRoot/>
AllowOverride FileInfo
</Directory>
AllowOverride 參數就是指明Apache服務器是否去找.htacess文件作為配置文件,如果設置為none,那麼服務器將忽略. htacess文件,如果設置為 All,那麼所有在.htaccess文件裡有的指令都將被重寫。對於AllowOverride,還可以對它指定如下一些能被重寫的指令類型.
1)、AuthConfig 允許使用所有的權限指令,他們包括 AuthDBMGroupFile AuthDBMUserFile AuthGroupFile AuthName AuthTypeAuthUserFile 和 Require
2)、FileInfo 允許使用文件控制類型的指令。它們包括 AddEncoding AddLanguage AddType DEfaultType ErrorDocument LanguagePriority
3)、Indexes 允許使用目錄控制類型的指令。它們包 括 AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon DirectoryIndex FancyIndexing HeaderName IndexIgnore IndexOptions ReadmeName
4)、Limit 允許使用權限控制指令。它們包括Allow Deny和Order
5)、Options 允許使用控制目錄特征的指令.他們包括Options 和XBitHack
Options:
1)、All 准許以下除MultiViews以外所有功能
2)、MultiViews 允許多重內容被浏覽,如果你的目錄下有一個叫做foo.txt的文件,那麼你可以通過/foo來訪問到它,這對於一個多語言內容的站點比較有用
3)、Indexes 若該目錄下無index文件,則准許顯示該目錄下的文件以供選擇,禁止目錄浏覽可以刪這項或“-Indexes”。
示例:
Java代碼
<Directory />
Options -Indexes FollowSymLinks //或者寫為“Options FollowSymLinks”
AllowOverride None
Order deny,allow
Deny from all
</Directory>
4)、IncludesNOEXEC 准許SSI,但不可使用#exec和#include功能
5)、Includes 准許SSI
6)、FollowSymLinks 在該目錄中,服務器將跟蹤符號鏈接。
注意,即使服務器跟蹤符號鏈接,它也不會改變用來匹配不同區域的路徑名,如果在<Local>標記內設置,該選項會被忽略。
7)、SymLinksIfOwnerMatch 在該目錄中僅僅跟蹤本站點內的鏈接。
8)、ExecCGI 在該目錄下准許使用CGI