【问题标题】:Apache/.htaccess - password-protecting a domain but whitelisting certain URIs within itApache/.htaccess - 对域进行密码保护,但将其中的某些 URI 列入白名单
【发布时间】:2010-09-20 12:53:25
【问题描述】:

这就是我想做的事情:

访问http://example.com/* 需要用户输入用户名/密码,除非他们访问特定的 URI(例如 http://example.com/contact/http://example.com/blog/ 等),他们不应该进行身份验证。 http://example.com(根)也应该打开。

我知道我必须设置一些特殊的 .htaccess 指令,但我不知道该怎么做。有谁知道我怎么能做到这一点?

任何帮助将不胜感激。 谢谢!

【问题讨论】:

    标签: apache .htaccess passwords http-authentication


    【解决方案1】:

    对于子目录,只需关闭基本身份验证即可。似乎没有直接的方法可以做到这一点(例如通过“require none”指令),但您可以说您接受基于主机的访问控制,并且任何主机都可以访问。以下对我有用:

        <Location /foo>
                AuthType Basic
                AuthName Foo
                AuthUserFile /tmp/passwd
                require valid-user
        </Location>
        <Location /foo/bar>
                Allow from all
                Satisfy any
        </Location>
    

    【讨论】:

    • 感谢您的回复!这看起来应该可以工作,但我仍然遇到问题。我收到 500 服务器错误。我只更改了 AuthUserFile 路径。我什至创建了一个简单的第二个站点来测试它,使用静态文件,它仍然是 500ing。知道是什么原因造成的吗?
    • 如果这是您第一次启用基本身份验证,您可能需要加载额外的 Apache 模块。在最近的 Apache 版本中,有一个单独的模块用于基于文件的用户和组身份验证,您需要单独加载。
    猜你喜欢
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多