当您管理在线项目时,您经常需要限制对该项目的访问,以保护其免受外部世界的影响。 可能有不同的原因 - 例如,您希望防止搜索引擎抓取工具在仍处于开发阶段时访问您的网站。
密码保护Apache Web目录
在本教程中,我将向你展示如何密码,Apache Web服务器保护,不同的网站目录。 有很多方法可以实现这一点,但我们将审查其中最常用的两个。
第一种方法是配置直接在Apache的配置文件的密码保护,而第二个使用.htaccess文件。
要求
为了为您的Web目录设置密码保护,您需要:
- 一个工作的Apache Web服务器
- 该设置AllowOverride AuthConfig指令必须在Apache配置文件中启用。
设置Apache密码保护目录
一,在本教程中,我们将保护主要网站根目录/var/www/html
。 要保护该目录,请打开Apache的配置:
---------------- On RedHat/CentOS based systems ---------------- # vi /etc/httpd/conf/httpd.conf ---------------- On Debian/Ubuntu based systems ---------------- # nano /etc/apache2/sites-available/000-default.conf
2.查找在/ var / www / html等 Apache的文档根目录,并添加以下事情的建议:
在Apache 2.2版本
<Directory /var/www/html> Options Indexes Includes FollowSymLinks MultiViews AllowOverride All allow,deny Allow from all </Directory>
在Apache 2.4版本
<Directory /var/www/html> Options Indexes Includes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>
Apache 2.4:启用AllowOverride All
3.保存文件,并使用以下命令重新启动Apache:
--------------- On Systemd ------------------- # systemctl restart httpd [On RedHat based systems] # systemctl restart apache2 [On Debian based systems] --------------- On SysV init ----------------- # service httpd restart [On RedHat based systems] # service apache2 restart [On Debian based systems]
4.现在我们将使用htpasswd命令为我们保护的目录中生成用户名和密码。 此命令用于管理基本认证的用户文件。
该命令的一般语法是:
# htpasswd -c filename username
在-c
选项指定将保持加密的用户名和密码指定认证用户文件。
5.我们的密码文件需要设了Apache的网站访问的目录,所以它是很好的保护。 为此,我们将创建新目录:
# mkdir /home/youcl
6.之后,我们将产生我们的用户名和密码,将被存储在该目录中:
# htpasswd -c /home/youcl/webpass youcl
一旦执行此命令,你将不得不进入我们的新用户的密码"youcl"
两次:
创建Apache用户密码
之后,我们需要确保Apache是能够阅读“webpass”文件。 为此,您需要使用以下命令更改该文件的所有权:
---------------- On RedHat/CentOS based systems ---------------- # chown apache: /home/youcl/webpass # chmod 640 /home/youcl/webpass
---------------- On Debian/Ubuntu based systems ---------------- # chown www-data /home/youcl/webpass # chmod 640 /home/youcl/webpass
7.在这一点上我们的新用户名和密码都准备好了。 现在我们需要告诉Apache在访问目标目录时请求密码。 为此,创建文件调用的.htaccess在/ var / www / html等 :
# vi /var/www/html/.htaccess
在其中添加以下代码:
AuthType Basic AuthName "Restricted Access" AuthUserFile /home/youcl/webpass Require user youcl
创建Apache受限访问
8.现在保存文件,并将您的设置进行测试。 打开浏览器并在网络浏览器中输入您的IP地址或域名,例如:
http://ip-address
应该提示您输入用户名和密码:
Apache密码保护目录认证
输入您设置的用于继续浏览您的网页的用户名和密码。
补充笔记
如果您使用共享托管,您很可能无法访问Apache配置文件。 然而,大多数托管公司已启用默认设置“AllowOverride全部”选项。 这意味着您只需要生成用户名和密码,然后选择您要保护的目录。 这显着简化了您的任务。
结论
我希望你发现这个教程有用,并帮助你实现你的目标。 如果您有任何问题或意见,请不要犹豫,在下面的部分。