apache配置訪問(wèn)站點(diǎn)下所有文件的實(shí)現(xiàn)
修改Options 為All(主要是Index)即可返回目錄文件
在整完apache和tomcat的之后我覺(jué)得有必要把和它下面的屬性捋順一下
如何訪問(wèn)根目錄下的目錄http://192.168.1.12/test/
第一. 缺省apache不允許訪問(wèn)http目錄(沒(méi)有定義,就沒(méi)有訪問(wèn)權(quán)限)
訪問(wèn)目錄http://192.168.1.12/test/ 會(huì)顯示: Forbidden You don't have permission to access /test/ on this server.
第二. 無(wú)限制目錄訪問(wèn)
在httpd.conf中增加定義,即可打開(kāi)無(wú)限制的目錄訪問(wèn)權(quán)限
<Directory /home/macg/www/test>
Options All
AllowOverride all
</Directory>
再訪問(wèn)會(huì)顯示如下:
Apache/2.0.54 (Fedora) Server at 192.168.1.12 Port 80 Index of /test Name Last modified Size Description ------------------------------------------------------------ Parent Directory - bg0073.jpg 29-Nov-2006 21:02 36K bg0135.jpg 29-Nov-2006 21:03 41K bg0137.jpg 29-Nov-2006 21:03 47K slade1.html 29-Nov-2006 22:02 1.2K slade2.html 29-Nov-2006 22:02 1.1K slade3.html 29-Nov-2006 22:02 1.4K slade4.html 29-Nov-2006 22:02 1.8K slade5.html 29-Nov-2006 22:02 2.3K -------------------------------------------------------------
Apache/2.0.54 (Fedora) Server at 192.168.1.12 Port 80 實(shí)際AllowOverride
all是enable .htaccess目錄限制功能。
但test目錄下并沒(méi)有.htaccess文件
等于開(kāi)放訪問(wèn),無(wú)限制。
第三. 有限制目錄訪問(wèn)
將其他目錄中的.htaccess拷貝入要限制訪問(wèn)的目錄
[root@localhost test]# ls -a . .. bg0073.jpg bg0135.jpg bg0137.jpg slade1.html slade2.html slade3.html slade4.html slade5.html [root@localhost test]# cp ../test1/.htaccess . [root@localhost test]# ls -a . .. bg0073.jpg bg0135.jpg bg0137.jpg .htaccess slade1.html slade2.html slade3.html slade4.html slade5.html [root@localhost test]# more .htaccess authType Basic AuthName "Restricted Files" AuthUserFile /etc/httpd/passwords Require valid-user
再訪問(wèn)http://192.168.1.12/test/
會(huì)跳出身份認(rèn)證窗口,輸入用戶名密碼,即可訪問(wèn)目錄
.htaccess 目錄限制的配置
要使用.htaccess文件,先在將httpd.conf中建立<Directory ></Directory>
<Directory "/home/macg/www/test">
Options All
允許對(duì)目錄的操作,ALL---所有操作
AllowOverride all
AllowOverride all----允許.htaccess所有指令,缺省是all
AllowOverride None ----完全忽略.htaccess文件
</Directory>
用/usr/bin/htpasswd創(chuàng)建一個(gè)用于認(rèn)證的密碼文件。
并且這個(gè)文件不應(yīng)該置于DocumentRoot目錄下,以避免被下載。
建議創(chuàng)建在/etc/httpd/目錄下:
[root@localhost httpd]# /usr/bin/htpasswd -c
/etc/httpd/passwords macg
-c建立文件
New password:
Re-type new password:
Adding password for user macg
[root@localhost httpd]# /usr/bin/htpasswd
/etc/httpd/passwords gary
沒(méi)有-c就是單純的adduser 追加用戶
New password:
Re-type new password:
Adding password for user gary
[root@localhost httpd]# more /etc/httpd/passwords
macg:U8jCwSsZyAB2g
gary:06yCDyg7AijlM
在受限制目錄下建立.htaccess文件
[root@localhost test]# ls -a
. .. bg0073.jpg bg0135.jpg bg0137.jpg .htaccess
slade1.html slade2.html slade3.html slade4.html
slade5.html
[root@localhost test]# more .htaccess
authType Basic
authType--------認(rèn)證類型
由mod_auth_basic提供的Basic
Basic認(rèn)證方法并不加密來(lái)自用戶瀏覽器的密碼(明文傳輸) 更安全的認(rèn)證方法"AuthType Digest",即由mod_auth_digest供的摘要認(rèn)證
最新的瀏覽器版本才支持MD5認(rèn)證
(認(rèn)證,服務(wù)器響應(yīng)速度會(huì)受一些影響,一般有幾百個(gè)用戶就會(huì)對(duì)響應(yīng)速度有非常明顯的影響)
AuthName "Restricted Files" AuthName "會(huì)員區(qū)"
此句是顯示給用戶看的
AuthUserFile /etc/httpd/passwords
此目錄接受passwords內(nèi)定義用戶的認(rèn)證請(qǐng)求
or
Require macg
此目錄只接受單一用戶macg(unix用戶)認(rèn)證請(qǐng)求
<Directory ></Directory>中指令的含義
<Directory "/home/macg/www/test">
Options All
AllowOverride all
</Directory>
Options指令-------目錄的訪問(wèn)特性
option none 禁止對(duì)目錄的所有操作
option all 允許對(duì)目錄的所有操作,ALL---所有操作
option ExecCGI 對(duì)該目錄,可以執(zhí)行cgi腳本
option Indexes 允許訪問(wèn)該目錄(而該目錄沒(méi)有index.html)時(shí),返回目錄下的文件列表
option FollowSymLinks 只允許對(duì)目錄的FollowSymLinks操作
AllowOverride指令
None 不讀取.htaccess
all all----允許.htaccess所有指令,缺省是all
Limit .htaccess函蓋具體限定的主機(jī)(allow,deny)
AuthConfig .htaccess函蓋跟認(rèn)證有關(guān)指令(AuthType,AuthName)
<Directory ></Directory> 對(duì)下面的所有子目錄也生效
所以httpd.conf中先對(duì)根目錄/進(jìn)行配置,等于是設(shè)置缺省配置
httpd.conf中先對(duì)根目錄/進(jìn)行配置,等于是設(shè)置缺省配置
<Directory />
Options FollowSymLinks 禁止對(duì)目錄的訪問(wèn)(option只允許對(duì)目錄的FollowSymLinks操作)
AllowOverride None 不讀取.htaccess
Order deny,allow deny all
Deny from all
</Directory>
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks 只允許訪問(wèn)index和連接
AllowOverride None
Order allow,deny 承接父目錄(/)的deny all,這里也是deny all
Allow from all
</Directory>
order allow deny ————-httpd.conf中封IP之類的操作
Apache模塊 mod_authz_host
<Directory /docroot> Order Deny,Allow Deny from ... Allow from ... </Directory>
注意順序:
除了后面allow的,其他都deny
典型的封IP
Order Allow,Deny
Allow from all
Deny from 205.252.46.165
注意順序:
除了后面deny的,其他都allow
Deny from 192.168.2 典型的封網(wǎng)段
上面清楚了 可以設(shè)置一個(gè)例子
Apache對(duì)于多虛擬主機(jī)以及多虛擬路徑的配置
ServerName localhost
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/home/work/"
保證所有的項(xiàng)目都放在/home/work/目錄, 該目錄只做配置
<Directory "/home/work/">
Options None
AllowOverride None
Require all denied
</Directory>
httpd-vhosts.conf 首先第一件事就是指定默認(rèn)的DocumentRoot
沒(méi)有商量, 必須放在httpd.conf中申明的根路徑
不需要severName配置
<VirtualHost 127.0.0.1:8800>
DocumentRoot "/home/work/www/htdocs"
<Directory /home/work/www/htdocs>
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
如果不需要多主機(jī)支持,到此為止
添加虛擬主機(jī),虛擬目錄等等
說(shuō)明: local.baidu.com 為第一個(gè)主機(jī)名, 如果多個(gè)域名映射設(shè)置ServerAlias即可
Alias 注意“/”的位置
```clike
<VirtualHost local.baidu.com:8800>
DocumentRoot "/home/work/workspace"
ServerName local.baidu.com
# ServerAlias local.baidu.com.cn local.baidu.cn
<Directory /home/work/workspace>
Options FollowSymLinks
AllowOverride none
Require all granted
</Directory>
Alias /phpMyAdmin "/home/work/www/htdocs/phpMyAdmin/"
# 添加一個(gè)日志分析, rotatelogs需要自己安裝
LogFormat "{method:\"%m\",state:\"%s\",protocol:\"%H\",url:\"%U\",time:\"%{%Y-%m-%d %T}t\",ua:\"%{User-Agent}i\",query:\"%q\",refer:\"%{Referer}i\",server:\"%V\"}" seo
CustomLog "|/usr/sbin/rotatelogs logs/seo_%Y%m%d.log 86400 480" seo
</VirtualHost>
## 同上其他主機(jī)配置 當(dāng)然對(duì)于該目錄下個(gè)各種配置屬性 不過(guò)下面這個(gè)是2.2的屬性 在2.4中進(jìn)行了少許的變更 所以2.4還是要查詢文檔 不過(guò)有下面的解釋打底應(yīng)該很容易 Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合 Directory, Location, Files等),用來(lái)控制目錄和文件的訪問(wèn)授權(quán)。 所以,最常用的是: Order Deny,Allow Allow from All 注意“Deny,Allow”中間只有一個(gè)逗號(hào),也只能有一個(gè)逗號(hào),有空格都會(huì)出 錯(cuò);單詞的大小寫不限。上面設(shè)定的含義是先設(shè)定“先檢查禁止設(shè)定,沒(méi)有 禁止的全部允許”,而第二句沒(méi)有Deny,也就是沒(méi)有禁止訪問(wèn)的設(shè)定,直 接就是允許所有訪問(wèn)了。這個(gè)主要是用來(lái)確?;蛘吒采w上級(jí)目錄的設(shè)置,開(kāi) 放所有內(nèi)容的訪問(wèn)權(quán)。 按照上面的解釋,下面的設(shè)定是無(wú)條件禁止訪問(wèn): Order Allow,Deny Deny from All 如果要禁止部分內(nèi)容的訪問(wèn),其他的全部開(kāi)放: Order Deny,Allow Deny from ip1 ip2 或者 Order Allow,Deny Allow from all Deny from ip1 ip2 apache會(huì)按照order決定最后使用哪一條規(guī)則,比如上面的第二種方式,雖 然第二句allow允許了訪問(wèn),但由于在order中allow不是最后規(guī)則,因此還 需要看有沒(méi)有deny規(guī)則,于是到了第三句,符合ip1和ip2的訪問(wèn)就被禁止 了。注意,order決定的“最后”規(guī)則非常重要,下面是兩個(gè)錯(cuò)誤的例子和 改正方式: Order Deny,Allow Allow from all Deny from domain.org 錯(cuò)誤:想禁止來(lái)自domain.org的訪問(wèn),但是deny不是最后規(guī)則,apache在 處理到第二句allow的時(shí)候就已經(jīng)匹配成功,根本就不會(huì)去看第三句。 解決方法:Order Allow,Deny,后面兩句不動(dòng),即可。 Order Allow,Deny Allow from ip1 Deny from all 錯(cuò)誤:想只允許來(lái)自ip1的訪問(wèn),但是,雖然第二句中設(shè)定了allow規(guī)則,由 于order中deny在后,所以會(huì)以第三句deny為準(zhǔn),而第三句的范圍中又明顯 包含了ip1(all include ip1),所以所有的訪問(wèn)都被禁止了。 解決方法一:直接去掉第三句。 解決方法二: Order Deny,Allow Deny from all Allow from ip1 下面是測(cè)試過(guò)的例子: -------------------------------- Order deny,allow allow from all deny from 219.204.253.8 全部都可以通行 ------------------------------- Order deny,allow deny from 219.204.253.8 allow from all 全部都可以通行 ------------------------------- Order allow,deny deny from 219.204.253.8 allow from all 只有219.204.253.8不能通行 ------------------------------- Order allow,deny allow from all deny from 219.204.253.8 只有219.204.253.8不能通行 ------------------------------- ------------------------------- Order allow,deny deny from all allow from 219.204.253.8 全部都不能通行 ------------------------------- Order allow,deny allow from 219.204.253.8 deny from all 全部都不能通行 ------------------------------- Order deny,allow allow from 219.204.253.8 deny from all 只允許219.204.253.8通行 ------------------------------- Order deny,allow deny from all allow from 219.204.253.8 只允許219.204.253.8通行 ------------------------------- -------------------------------- Order deny,allow 全部都可以通行(默認(rèn)的) ------------------------------- Order allow,deny 全部都不能通行(默認(rèn)的) ------------------------------- Order allow,deny deny from all 全部都不能通行 ------------------------------- Order deny,allow deny from all 全部都不能通行 ------------------------------- 對(duì)于上面兩種情況,如果換成allow from all,則全部都可以通行! ------------------------------- Order deny,allow deny from 219.204.253.8 只有219.204.253.8不能通行 ------------------------------- Order allow,deny deny from 219.204.253.8 全部都不能通行 ------------------------------- Order allow,deny allow from 219.204.253.8 只允許219.204.253.8通行 ------------------------------- Order deny,allow allow from 219.204.253.8 全部都可以通行 ------------------------------- ------------------------------- order deny,allow allow from 218.20.253.2 deny from 218.20 代表拒絕218.20開(kāi)頭的IP,但允許218.20.253.2通過(guò);而其它非218.20開(kāi)頭的IP也都允許通過(guò)。 ------------------------------- order allow,deny allow from 218.20.253.2 deny from 218.20 和上面的差不多,只是掉換的order語(yǔ)句中的allow、deny先后順序,但最 終結(jié)果表示全部都拒絕!
到此這篇關(guān)于apache配置訪問(wèn)站點(diǎn)下所有文件的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)apache配置訪問(wèn)站點(diǎn)下所有文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談linux kernel對(duì)于浮點(diǎn)運(yùn)算的支持
今天小編就為大家分享一篇淺談linux kernel對(duì)于浮點(diǎn)運(yùn)算的支持,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
讓Apache支持shtml實(shí)現(xiàn)include文件解析的配置方法
Apache支持include文件解析shtml首先要應(yīng)該修改Apache配置文件httpd.conf2011-03-03
linux 下部署nodejs項(xiàng)目(兩種方式)
本篇文章主要介紹了linux 下部署nodejs項(xiàng)目(兩種方式),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
在Linux服務(wù)器上部署War項(xiàng)目教程
文章講述了如何將War包上傳到Linux服務(wù)器上的步驟,包括使用FTP或SFTP上傳,確認(rèn)并安裝Java運(yùn)行環(huán)境和Web服務(wù)器(如ApacheTomcat或Nginx),將War包復(fù)制到相應(yīng)的目錄,并重啟服務(wù)以確保部署成功,最后,通過(guò)瀏覽器訪問(wèn)部署的應(yīng)用2025-02-02
linux禁止ping的實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了linux禁止ping的實(shí)現(xiàn)實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05

