有时在我们的网站我们需要请求一个单一的url或一些特定的网址,所有其他站点 url继续保持公开访问。在网站使用目录和文件结构这是很容易管理的。但有些像cakephp框架工作路由结构,目录结构是不同的,我们不能保证目录级别。 本文将帮助你在Apache中保护特定的URL。例如,一个网站有一个像
“http://example.com/admin/” 安全区域,我们需要只有授权用户或IPS可以访问
/admin/ 。
1. 在具体URL上设置IP限制
首先编辑Apache配置文件,并添加下面的虚拟主机条目。这将只允许192.168.10.11和123.45.67.89的IP来访问 /admin URL 。
<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. 在具体的网址中设置用户身份验证
编辑Apache配置文件,并添加下面的网站虚拟主机部分条目。
<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并访问您的网站的网址。它会提示输入登录详细信息。
# service httpd restart # For RHEL based systems
$ sudo service apache2 restart # For Debian based systems
感谢您阅读这篇文章,我希望这篇文章满足您的需求。
点击这里阅读有关Apache的位置命令的更多细节。