有時我們需要在我們的網站中保護一個或幾個特定的URL,并且所有其他網站URL仍保留公共訪問權限。使用站點中的目錄和文件結構是非常容易管理的,但是cakephp等框架的路由結構不同于目錄結構,我們無法在目錄層面上保護它。本篇文章將介紹在Apache中保護特定的URL。
例如,一個站點有一個安全區域,如http://example.com/admin/“,我們只有授權用戶或IP才能訪問/admin/部分。
1、在特定URL上設置基于IP的限制
首先編輯apache配置文件,并在virtualhost中添加以下條目。這將僅允許/admin URL訪問192.168.10.11和123.45.67.89 IP。
- <Location /admin>
- Order deny,allow
- Deny from all
- Allow from 192.168.10.11
- Allow from 123.45.67.89
- </Location>
保存Apache配置文件并使用以下命令之一重新啟動Apache服務。
# service httpd restart # For RHEL based systems
$ sudo service apache2 restart # For Debian based systems
我們嘗試從任意其他IP訪問你的站點。同時還要在配置文件中檢查給定的ip。。
2、在特定URL上設置用戶身份驗證
編輯apache配置文件,并在網站virtualhost部分添加以下內容。
- <Location /admin>
- AuthUserFile /var/www/htpasswd/.htpasswd
- AuthName "Password Protected Area"
- AuthType Basic
- Require valid-user
- </Location>
現在使用下面的命令創建新的htpasswd文件并添加一個新用戶。
- # htpasswd -cm /var/www/htpasswd/.htpasswd myuser
- ?
- New password:
- Re-type new password:
- Adding password for user myuser
重新啟動Apache并訪問你的網站URL,它將提示登錄的詳細信息。
# service httpd restart # For RHEL based systems
$ sudo service apache2 restart # For Debian based systems
新聞熱點
疑難解答