下面是我的 VHost(稍作修改以隐藏一些 URL):
1 名称VirtualHost 192.168.1.49:80 2 3 <虚拟主机 192.168.1.49:80> 4 ServerName 内部名称.local 5 ServerAlias *.internal-name.local external-domain.co.uk *.external-domain.co.uk 6 7 <目录“/var/www/html”> 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)的任何请求都将被提示输入密码。
我遇到的问题是让最后一个“位置”规则起作用。
我所做的任何事情(无论是 .htaccess 还是 vhost 级别)都不会使用或禁用“/open-path” URL 的密码保护。
实际上 - 此服务器上的每个站点都在运行 Drupal,它在 .htaccess 中使用 URL 重写,将所有非文件映射到“?q =”... 所以: http://domain/foo/bar 映射到: http://domain/index.php?q=foo/bar
我不认为这应该会影响这一点,不是吗?
我指出它的原因是“/open-path/callback”需要为第 3 方 API 打开才能“ping”该站点。我需要在推送之前测试这个回调是否正常工作,但是我不想让整个网站免受密码保护。
我尝试将位置设置为“/index.php?q=open-path”,但这也不起作用。
任何建议将不胜感激!