(1)、所有解析到該ip的域名均有效NameVirtualHost 192.168.1.1:80
<VirtualHost 192.168.1.1:80>
ServerAdmin [email protected]
ServerName www.suctephp.com
DocumentRoot /home/www/apache
</VirtualHost>
(2)、只有自己的域名解析到該ip才有效NameVirtualHost 192.168.1.1:80
<VirtualHost 192.168.1.1:80>
ServerName 192.168.1.1
DocumentRoot /dev/null
</VirtualHost>
<VirtualHost 192.168.1.1:80>
ServerAdmin [email protected]
ServerName www.suctephp.com
DocumentRoot /home/www/apache
</VirtualHost>
apache的配置文件認為如果找不到所對應的域名,就自動轉交給第一個域名,所以我把第一個域名下放置一個錯誤頁就ok了。
我的相關配置如下:
NameVirtualHost *
<VirtualHost *>
ServerName error.52itbc.com
DocumentRoot /usr/local/ahache/htdocs/error
</VirtualHost>
<VirtualHost *>
ServerName bbs.52itbc.com
ServerAlias bbs.52itbc.com
DocumentRoot /usr/local/ahache/htdocs/bbs
</VirtualHost>
<VirtualHost *>
ServerName 52itbc.com
ServerAlias 52itbc.com
DocumentRoot /usr/local/ahache/htdocs/www
</VirtualHost>
ScriptAlias指令使Apache允許執行一個特定目錄中的CGI程序。當客戶端請求此特定目錄中的資源時,Apache假定其中文件都是CGI程序並試圖運行。
ScriptAlias指令形如:
ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
如果Apache被安裝到默認的位置,默認的配置文件httpd.conf中則會有上述配置。ScriptAlias指令定義了映射到一個特定目錄 的URL前綴,與Alias指令非常相似,兩者一般都用於指定位於DocumentRoot目錄以外的目錄,其區別是ScriptAlias又多了一層含 義,即其URL前綴中任何文件都被視為CGI程序。所以,上述例子會指示Apache,/cgi-bin/應該指向/usr/local/apache /cgi-bin/目錄,且視之為CGI程序。
ScriptAlias目錄以外的CGI由於安全原因,CGI程序通常被限制在ScriptAlias指定的目錄中,如此,管理員就可以嚴格地控制 誰可以使用CGI程序。但是,如果采取了恰當的安全方法措施,則沒有理由不允許其他目錄中的CGI程序運行。比如,你可能希望用戶在UserDir指定的 宿主目錄中存放頁面,而他們有自己的CGI程序,但無權存取cgi-bin目錄,這樣,就產生了運行其他目錄中CGI程序的需求。
用Options顯式地允許CGI的執行
可以在主服務器配置文件中,使用Options指令顯式地允許特定目錄中CGI的執行:
<Directory /usr/local/apache/htdocs/somedir>
Options +ExecCGI
</Directory>
上述指令使Apache允許CGI文件的執行。另外,還必須告訴服務器哪些文件是CGI文件。下面的AddHandler指令告訴服務器所有帶有cgi或pl後綴的文件是CGI程序:
AddHandler cgi-script cgi pl
.htaccess文件是針對目錄進行配置的一種方法。Apache在提供一個資源時,會在此資源所在目錄中尋找.htaccess文件,如果有, 則使其中的指令生效。AllowOverride 指令決定了.htaccess文件是否有效,它指定了哪些指令可以出現在其中,或者根本不允許使用。為此,需要在主服務器配置中如此配置:
AllowOverride Options
在.htaccess文件中,需要如此配置:
Options +ExecCGI
以使Apache允許此目錄中CGI程序的執行。
*