在WD MyBookLive上配置HTTPS基本身份验证.htaccess

时间:2018-02-02 06:41:13

标签: php apache .htaccess basic-authentication

我有 WD MyBookLive 2TB,并执行了以下操作:

  • 将我自己的.htaccess保存到/ var / www / mysebserver,它指向位于/ etc / apache2 /的我自己的.htpassw。。
  • 授予.htaccess
  • 777权限
  • 我的所有网页都与.htaccess位于同一个文件夹中。

.htaccess文件是:

AuthType Basic 
AuthName "Restricted Content" 
AuthUserFile /etc/apache2/.htpasswd 
Require valid-user

问题是未启用基本身份验证,我仍然可以访问HTML文件而无需任何身份验证。

此外,似乎 .htaccess文件被忽略即使我在apache2.conf中设置了以下内容:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

AllowOverride All

时抛出404内部服务器错误

Apache版本:2.2.9

似乎 WD MyBookLive 忽略了.htaccess.htpasswd个文件

如何激活基本身份验证?

5 个答案:

答案 0 :(得分:1)

所以我只需在我的.htaccess文件中尝试配置,然后获取基本登录表单。

我在Ubuntu 14.04&#34;上找到了文章&#34;如何使用Apache设置密码验证; (https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-apache-on-ubuntu-14-04

我认为这可能是因为你没有安装apache2-utils

请尝试下一个命令:

sudo apt-get install apache2-utils
sudo service apache2 restart

答案 1 :(得分:0)

解决方案1:

第1步:安装Apache实用程序包

  • 我们将使用名为htpasswd的实用程序,它是apache2-utils软件包的一部分,用于创建文件并管理访问受限内容所需的用户名和密码。

sudo apt-get更新 sudo apt-get install apache2-utils

第2步:创建密码文件

  • 现在可以访问htpasswd命令。我们可以使用它来创建一个密码文件,Apache可以使用该密码文件对用户进行身份验证。

sudo htpasswd -c /etc/apache2/.htpasswd用户

建议:对于要添加的任何其他用户,请省略-c参数:

sudo htpasswd /etc/apache2/.htpasswd another_user

注意:如果我们查看文件的内容,我们可以看到每个记录的用户名和加密密码:

猫/etc/apache2/.htpasswd

第3步,配置Apache密码认证

现在我们有了一个包含用户和密码的文件,其格式可以让Apache读取,我们需要配置Apache以在提供受保护的内容之前检查该文件。我们可以通过以下两种方式之一进行操作:直接在网站的虚拟主机文件中,或者将.htaccess文件放在需要限制的目录中。

选项1:在虚拟主机中配置访问控制

第一个选项是编辑Apache配置并将密码保护添加到虚拟主机文件。此选项需要访问配置,该配置并非总是可用,但是只有在您有权访问时才能使用。 首先打开要添加限制的虚拟主机文件。

sudo nano /etc/apache2/sites-enabled/example.conf

身份验证是基于每个目录进行的。要设置身份验证,您需要使用块将要限制的目录作为目标。在我们的示例中,我们将限制整个文档的根

在此目录块中,指定我们希望设置基本身份验证。 -对于AuthName,>选择在提示输入凭据时将显示给用户的领域名称。 -使用AuthUserFile指令>将Apache指向我们创建的密码文件。 -我们将需要一个有效用户>来访问此资源,这意味着任何可以使用密码验证其身份的人都将被允许进入

  • 现在,您需要在完成后保存并关闭文件。

注意:重新启动Web服务器之前,可以使用以下命令检查配置:

sudo apache2ctl configtest

如果一切都检查完毕,并且您的语法正确,则重新启动服务器以实施密码策略。

选项2:使用.htaccess文件配置访问控制 要使用.htaccess文件启用密码保护,请打开主要的Apache配置文件:

sudo nano /etc/apache2/apache2.conf

  • 找到保存文档根目录的/ var / www目录的块。通过将该块中的AllowOverride指令从“ None”更改为“ All”来打开.htaccess处理:

  • 完成后保存并关闭文件。

  • 接下来,我们需要将.htaccess文件添加到我们希望限制的目录中。另外,我们将限制基于/ var / www / HTML的整个文档根目录(整个网站),但是您可以将此文件放置在您希望限制访问的任何目录中

sudo nano /var/www/html/.htaccess

  • 在此文件中,指定我们希望设置基本身份验证。
  • 对于Auth Name(验证名称)>选择一个在提示输入凭据时将显示给用户的领域名称。
  • 使用AuthUserFile指令>将Apache指向我们创建的密码文件。
  • 我们将需要一个有效用户>来访问此资源,这意味着任何可以使用密码验证身份的人都将被允许进入

第4步-确认密码身份验证

要确认您的内容受到保护,请尝试在Web浏览器中访问受限制的内容。您应该看到一个用户名和密码提示,如下所示:

  • 保存并关闭文件。重新启动Web服务器以使用.htaccess文件对目录中或目录下的所有内容进行密码保护

答案 2 :(得分:0)

经过数周的尝试,我的摘要身份验证成功比基本身份验证好。 我在Mook Live上安装了WebDav服务器,然后将PHP文件放入webdav共享文件夹中。 我配置的PHP文件只有读权限。

Here是有关如何在MyBookLive上配置WebDav服务器的教程

答案 3 :(得分:-1)

如果您打算使用.htaccess文件进行基本身份验证。您需要一个如下所示的AllowOverride指令:

isConcurrent

答案 4 :(得分:-1)

激活mod_rewrite:sudo a2enmod rewrite

编辑/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
    <Directory /var/www/mywebserver>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>
. . .
</VirtualHost>

重启服务:sudo systemctl restart apache2

在/ var / www / mywebserver /中创建.htaccess文件,并在顶部添加以下行,其他行在底部

RewriteEngine on
相关问题