如何在Apache中保护特定的URL

有时在我们的网站我们需要请求一个单一的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的位置命令的更多细节。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏