我有一个正在运行的测试站点,其.htaccess 文件定义如下:
AuthName "test"
AuthUserFile "/home/testdomain/.htpasswds/public_html/passwd"
AuthType Basic
require valid-user
这需要整个 test.mydomain.com 区域的用户/密码。
我几乎可以从任何地方连接,但出于某种原因,我的客户在政府防火墙内(所以我假设它非常严格)无法登录。它一直无法使用我给他们的用户/密码组合。
有一件我不明白的怪事是,当我将 .htaccess 文件转换为“bak.htaccess”后,他们进入网站时,他们按预期没有登录屏幕就进入了。然后我将文件重新转换为“.htaccess”,他们关闭/打开浏览器,又回到了 .htaccess 登录,但现在一切正常。
我不确定这是他们那边的防火墙问题还是缓存问题,或者其他什么。希望服务器/防火墙专家知道一些我作为开发人员不知道的事情。
编辑:我应该提到,以防万一:我还制定了重写规则,以便从非 https:// 访问网站的用户将被重定向到带有 https:// 的相应页面。我曾尝试让无法进入的用户转到完整https://test.mydomain.com/域虽然不应该触发规则,但它仍然失败。
如果相关的话,我的重写信息:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://test.mydomain.com/$1 [R,L]
答案1
如果他们有权在自己的计算机上执行此操作,您可能想看看他们是否可以尝试使用其他 Web 浏览器。如果他们没有管理员权限并且无法安装,但这样做并不违反他们的政策,他们可以运行不需要安装的“便携式”/独立浏览器。
另一种解决方法是添加“满足任何条件”行,然后允许从他们的 IP 地址进行访问(如果从安全角度而言他们可以接受并且他们拥有静态 IP 地址)。如果您采用这种方式,那么在这样做之后,请确保在从另一个 IP 地址(即不是他们的 IP)访问网站时仍会提示您输入密码,以防某个地方有允许指令允许所有人访问。他们可以通过谷歌搜索“我的 IP 是什么”并查看顶部出现的内容来获取他们的 IP。