当前位置: 首页>>技术教程>>正文


Apache .htaccess目录访问保护

, ,

如果您需要从公共访问中屏蔽您的网站,请知道apache .htaccess文件提供了一种简单而有效的方法来完成此工作。本文仅通过简单的步骤就可以教给您。

第一步,我们需要确保我们的网站配置将读取.htaccess文件。为此,请检查您的httpd.conf文件或您的网站apache设置是否包含指令:

 AllowOverride ALL

在Ubuntu /Debian系统上,此指令默认为“none”。

Options Indexes FollowSymLinks MultiViews
AllowOverride ALL
Order allow,deny
allow from all

如果进行了一些更改,请重新启动apache Web服务器:


# /etc/init.d/apache2 restart

AuthType基本-单用户

此配置将仅允许一个用户名为“lilo”的用户访问受.htaccess保护的网站目录。首先,我们需要创建一个密码文件。该文件仅包含一行,以md5哈希形式定义用户及其密码。执行以下linux命令s创建密码文件:

注意:您不必使用-m选项来使用MD5密码。

# mkdir /usr/local/apache 
# htpasswd -bcm /usr/local/apache/passwords lilo password-here 

接下来,我们为具有用户名lilo的单个用户部署基本身份验证。这意味着只有lilo用户才能访问受.htaccess保护的网站。在您要保护的目录中更改或创建.htaccess文件,其内容如下:

AuthName ".htaccess protected website"
AuthType Basic
AuthUserFile /usr/local/apache/passwords

require user lilo     

AuthType Basic-多个用户

这与上面的单个用户配置基本相同,只是我们需要更改一个.htaccess行:

从:

require user lilo 

至:

require valid-user

因此,您将得到:

AuthName ".htaccess protected website"
AuthType Basic
AuthUserFile /usr/local/apache/passwords

require valid-user

现在,我们可以将更多用户添加到我们先前创建的密码文件中。但是,这次我们将省略-c选项,因此我们不会覆盖先前创建的/usr /local /apache /passwords文件。我们再添加两个用户:

# htpasswd -bcm /usr/local/apache/passwords john password-here
# htpasswd -bcm /usr/local/apache/passwords peter password-here
 

AuthType摘要

基本的.htaccess身份验证的一个缺点是,密码是通过Internet以明文形式发送的。这使得拦截和滥用变得容易。通过摘要身份验证,您的密码将以md5哈希形式加密发送。让我们创建.htaccess保护,以仅允许lilo用户访问我们的网站:首先,我们需要创建密码摘要文件,但是这次使用htdigest命令:

htdigest -c /usr/local/apache/digest-passwords ".htaccess protected website" lilo

注意:字符串“ .htaccess受保护的网站”是一个领域,当尝试访问受.htaccess保护的网站时,它将显示在对话框中。该字符串必须与下面的AuthName目录匹配。您可以将领域字符串更改为任意内容:更改或创建具有以下内容的.htaccess文件:

AuthType Digest
AuthName ".htaccess protected website"
AuthUserFile /usr/local/apache/digest-passwords

require user lilo

要让多个用户访问您的网站更改:

从:

require user lilo

至:

require valid-user

并通过以下方式将其他用户投放到您的/usr /local /apache /digest-passwords:

htdigest /usr/local/apache/digest-passwords ".htaccess protected website" john
htdigest  /usr/local/apache/digest-passwords ".htaccess protected website" apache

故障排除

错误:

/var/www/.htaccess: Invalid command 'AuthDigestFile', perhaps misspelled or 
defined by a module not included in the server configuration

AuthDigestFile仅由apache 2.2版使用use AuthUserFile指令

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10688.html,未经允许,请勿转载。