【问题标题】:How to remove .htaccess password protection from a subdirectory如何从子目录中删除 .htaccess 密码保护
【发布时间】:2010-11-28 17:13:56
【问题描述】:

我使用.htaccess 对我的整个网站进行了密码保护,但我想公开其中一个子目录,以便无需密码即可查看。

如何禁用子目录的 htaccess 密码保护?具体是什么.htaccess 语法。

这是我的 .htaccess 文件,它位于我的 ftp 根目录中。

AuthName "站点管理" AuthUserFile /dir/.htpasswd AuthGroupFile /dev/null AuthName 安全 AuthType 基本 需要用户名1 命令允许,拒绝 允许所有人

【问题讨论】:

  • 这可能更适合服务器故障。

标签: .htaccess password-protection subdirectory


【解决方案1】:

您需要将另一个 .htaccess 文件添加到覆盖身份验证的子目录。 .htaccess 向上级联,即它会在当前文件夹中查找,然后上一层等等。

【讨论】:

  • 你碰巧知道语法吗?我理解这个概念,但不知道如何实现它。
  • 如果要删除当前的并且不使用任何权限,只需将其替换为名为.htaccess的空文件
  • @Garry 这不是 .htaccess 级联的工作方式,您必须明确覆盖选项。
【解决方案2】:

您需要在所需目录中创建一个新的.htaccess 文件,并像这样在其中包含Satisfy any 指令,直到 Apache 2.3:

# allows any user to see this directory
Satisfy Any

在 Apache 2.4 中改变了语法,这具有相同的效果:

Require all granted

【讨论】:

  • 我只能使用 Allow from all 而不是 Satisfy Any
  • @JessTelford 很好地使用了sn-p的代码。 @RageZ +1 为我工作的答案。您能否将答案编辑为超级简单并使用代码 sn-p 方法发布。否则有人将不得不考虑thanks
  • @JessTelford Satisfy Any 正在工作,但拼写错误为 Satisify Any。可能这就是它对您不起作用的原因。
  • 我需要使单个文件不受保护(其他所有内容都受到保护),在 部分中设置相同
  • 这对我不起作用 - 我仍然收到询问用户名和密码的密码模式。使用 firefox 和 windows 7...有人知道吗?
【解决方案3】:

除了 RageZ 的回答,我在服务器指令中使用了这个:

<Directory /var/www/protected/>
     AuthType Basic
     AuthName "Production"
     AuthUserFile /path/to/.htpasswd
     Require valid-user
</Directory>

<Directory /var/www/protected/unprotected>
     Satisfy Any
</Directory>

太棒了。感谢 RageZ!

【讨论】:

    【解决方案4】:

    只需使用此指令在所需的子目录中创建一个新的.htaccess

    Allow from all

    您只能通过以下方式限制您的 IP:

    Allow from x.x.x.x

    见:http://httpd.apache.org/docs/current/mod/mod_access_compat.html

    【讨论】:

    • 当我输入“要求全部授予”而不是“全部允许”和“满足任何”时,它起作用了。这两个对我不起作用。我在 Apache 2.4 上。
    【解决方案5】:

    如果你想阻止任何特定的directoty进行htaccess身份验证,那么你可以在顶部的htaccess文件中使用以下代码。

    AuthType Basic AuthName "Enter Pass" AuthUserFile /home/public_html/.htpasswd /*PATH TO YOUR .htpasswd FILE*/ Require valid-user SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow Order allow,deny Allow from env=allow

    另外,如果你想阻止多个目录,那么 添加

    SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow

    尽可能多的目录,您想从 htaccess 预防中删除。

    【讨论】:

      【解决方案6】:

      这是一种允许子目录“foo”通过站点上主 .htaccess 文件的基本身份验证的方法:

      AuthType Basic
      AuthName "Password Required"
      AuthUserFile /dir/.htpasswd
      Require expr %{REQUEST_URI} =~ m#^/foo/#
      Require valid-user
      

      注意:这适用于 Apache 2.4。我还没有确认早期版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-19
        • 1970-01-01
        • 1970-01-01
        • 2013-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多