【问题标题】:Apache protect all paths but whitelist a specific pathApache 保护所有路径,但将特定路径列入白名单
【发布时间】:2011-07-13 03:24:12
【问题描述】:

以下是我的 VHost(稍作修改以隐藏一些 URL):

1 名称VirtualHost 192.168.1.49:80 2 3 4 ServerName 内部名称.local 5 ServerAlias *.internal-name.local external-domain.co.uk *.external-domain.co.uk 6 7 8 允许覆盖所有 9 10 订单拒绝,允许 11 拒绝一切 12 13 AuthName“受限开发服务器” 14 AuthUserFile /var/www/html/.htpasswd 15 AuthType 基本 16 需要有效用户 17 18 允许来自 192.168.1。 19 20 满足任何 21 目录> 22 23 24 订单允许,拒绝 25 允许所有人 26 拒绝从无 27 位置> 28 29 日志级别调试 30 虚拟文档根 /var/www/html/%1/ 31 虚拟主机>

一切正常 - 每个子域在 /var/www/html 中都有自己的文件夹。来自 192.168.1.x 的任何请求(通过内部域映射)都可以在没有密码提示的情况下查看该站点。来自外部 IP(通过 external-domain.co.uk)的任何请求都将被提示输入密码。

我遇到的问题是让最后一个“位置”规则起作用。

我不会使用或禁用“/open-path” URL 的密码保护(无论是 .htaccess 还是 vhost 级别)。

实际上 - 此服务器上的每个站点都在运行 Drupal,它使用 .htaccess 中的 URL 重写将所有非文件映射到“?q =”...所以: http://domain/foo/bar 映射到: http://domain/index.php?q=foo/bar

我认为这应该不会影响这个,不是吗?

我指出它的原因是需要打开“/open-path/callback”,第 3 方 API 才能“ping”该站点。我需要在推送上线之前测试此回调是否正常工作,但是我不想让整个网站免受密码保护。

我尝试将 Location 设置为“/index.php?q=open-path”,但也没有成功。

任何建议将不胜感激!

【问题讨论】:

    标签: apache .htaccess configuration passwords access-control


    【解决方案1】:

    这是来自 Apache 文档: http://httpd.apache.org/docs/2.2/mod/core.html#require

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

    这也适用于位置。

    【讨论】:

    • 完美运行! :-) 很抱歉,我的回复大大延迟了,只是整理并整理了我未回答的问题。
    猜你喜欢
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 2021-05-27
    • 2012-02-01
    • 1970-01-01
    相关资源
    最近更新 更多