【问题标题】:htaccess basic auth allow only one directoryhtaccess basic auth 只允许一个目录
【发布时间】:2011-04-25 13:30:48
【问题描述】:

我正在使用 Drupal 6。

我正在尝试使用 htaccess 基本身份验证来阻止对我的开发站点的访问。我已成功添加身份验证,因此只有我们的开发人员可以访问它。

但现在我想允许任何人访问一个模块(其链接以 anon/ 开头)。

例如:假设我的网站是testsite.com

我想阻止对所有页面的所有请求,期望 testsite.com/anon/*

有可能吗?如果是怎么办?

提前致谢。

【问题讨论】:

    标签: php .htaccess drupal-6 basic-authentication


    【解决方案1】:

    编辑:第一次回复无效。操作方法如下:

    查看http://httpd.apache.org/docs/current/mod/core.html#require 的文档,上面写着:

    <Directory /path/to/protected/>
      Require user david
    </Directory>
    <Directory /path/to/protected/unprotected>
      # All access controls and authentication are disabled
      # in this directory
      Satisfy Any
      Allow from all
    </Directory>
    

    这是 Apache 2,顺便说一句。

    【讨论】:

    • 您可能想使用LocationMatch,因为您需要根据请求的网址进行匹配。
    • 根据文档,实际上两者都不起作用,因为 Require 仅适用于目录上下文。
    • Thilo,它不工作。尝试此操作时出现 500 内部服务器错误
    • 然后检查你的错误日志文件,看看是什么导致了 500 错误。
    • 我有同样的情况,但仍在询问密码,!!
    【解决方案2】:
    RewriteCond %{REQUEST_URI} !^/anon
    RewriteRule ^(.*) error.html [L]
    

    我无法确定我理解的内容是否与您想要表达的内容相同。 我是中国人,英文不好~_~

    【讨论】:

    • 这将拒绝任何人访问除 /anon/* 以外的任何内容,无论身份验证如何。
    【解决方案3】:

    因为我偶然发现了这个并且花了我一些时间:

    接受的答案是错误的,不可能
    (@Thilo,回答者在 cmets 中这么说)。

    &lt;Directory&gt; 指令在 .htaccess 上下文中不起作用,仅在服务器配置或虚拟主机上下文 (docs) 中起作用。如果您将@Thilo 的配置放在该上下文中(即httpd.confvhosts.conf 或任何您的发行版拥有它) - 在.htaccess 中,您将收到 500 内部服务器错误,就像 OP 一样。

    【讨论】:

      猜你喜欢
      • 2015-08-07
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      相关资源
      最近更新 更多