Apache+Tomcat整合後 禁止訪問 WEB-INF目錄

Apache+Tomcat整合後,二者的主目錄指向了同一目錄,好比/website/app,由於Tomcat須要在主目錄或context下 建一個WEB-INF目錄,對於Tomcat來講,經過Tomcat的8080端口,是沒法訪問這個目錄的,不過,對於apache來講,默認狀況下,對 這個目錄有訪問權,用戶能直接訪問http://localhost/WEB-INF/web.xml之類的來訪問WEB-INF裏面的設置,類和庫。

有三種方法 php

一。經過修改 AllowOverride All (此方法不推薦,由於影響apache效率) html

一、修改http.conf
假設你想控制/usr/local/apache/htdocs下各目錄的不一樣訪問權限,你能夠在<Directory "/usr/local/apache/htdocs">與</Directory>之間加入一行:
AllowOverride All
意思是在/usr/local/apache/htdocs下不一樣目錄的訪問權限由該目錄下的.htaccess文件來控制,並且不一樣目錄的權限策略可互相覆蓋。
二、編輯你想要控制的目錄下的.htaccess文件
假設你的phpmyadmin目錄在/usr/local/apache/htdocs下,你能夠這樣在phpmyadmin目錄下建立一個.htaccess文件,內容以下:

AuthUserFile /usr/local/apache/pass/pwdPhp
AuthType Basic
AuthName "Database Security Zone"
ErrorDocument 401 /catchErrors/err_401.html
<Limit GET POST>
require valid-user
</Limit>

該文件說明了幾個問題:
(1) 用戶信息存放在/usr/local/apache/pass/pwdPhp中.
(2) 認證類型爲基本型(此外還有一些其餘的加密類型).
(3) ErrorDocument 所指向的html文件.
(4) 認證方式:用戶認證(valid-user)或組認證(valid-group).

3. 生成用戶密碼文件
有一個用戶密碼生成程序:htpasswd(在/usr/local/apache/bin下), 它能夠加入用戶密碼信息到指定的文件中,如/usr/local/apache/pass/pwdPhp. 個人用戶密碼文件內容以下:

admin:a0Hplbj33QjV2
guest:R0BYSO383QjVT

4. 重起apache deamon
/usr/local/apche/bin/apachectl restart

5. 測試
用IE瀏覽受保護的頁面,如http://ip/phpmyadmin/ (可能須要refresh幾回才能湊效),這時應該出現一個身份認證窗口,你須要輸入用戶名(admin / guest) 和密碼(******)才能訪問這個頁面。 web

 

 

二。修改httpd.conf文件 apache

在httpd.conf中加入 app

<Directory /home/lijing/WEB-INF>   (注:/home/lijing/WEB-INF  是 WEB-INF 所在位置)

Order allow,deny

Deny from all

</Directory> ide

 

 

三。修改httpd.conf文件 測試

在httpd.conf中加入 ui

 

RewriteEngine on
RewriteRule /WEB-INF/ / [R] 加密

相關文章
相關標籤/搜索