gpt4 book ai didi

.htaccess - 使用Errordocument 401会导致空白页

转载 作者:行者123 更新时间:2023-12-05 01:10:01 25 4
gpt4 key购买 nike

我的.htaccess如下所示:

ErrorDocument 401 /error/401.html
AuthType Basic
AuthName "Password Protected Area"
AuthUserFile /var/www/vhosts/funatodev.de/httpdocs/wordpress/.htpasswd
AuthGroupFile /dev/null
Require valid-user

# BEGIN WordPress

# END WordPress

但是,当包含第一行时,而不是登录窗口,我只会得到一个空白页。 (当然,文件/error/401.html存在)我尝试添加以下行:
SetEnvIf Request_URI "^/(error/401\.html|robots\.txt)$" allow_all
Order allow,deny
Allow from env=allow_all
Satisfy any

但这会导致内部服务器错误。

最佳答案

在无法查看配置文件中的所有内容的情况下,由于您已经抢先拒绝了“所有”用户访问错误页面的权限,因此您似乎仍然会遇到问题。

换句话说,您不能发回本身受基本授权保护的错误页面。服务器不知道如何正确处理这种递归情况,因此它不知道。

确保为包含您的自定义错误页面的目录显式覆盖并禁用.htaccess请求的授权。

例如,如果您的错误文件目录是/error/,则表明:

<Directory /error/>
Order allow,deny
Allow from all
</Directory>

@弗雷德·甘特

为了回答您的问题,让我对401流程进行一些扩展。有助于了解HTTP不是有状态协议(protocol)。换句话说,每个请求和每个响应都独立于后续请求和响应(相对于实际的HTTP协议(protocol)而言)存在-当然,您的浏览器和服务器都可以维护有关每个请求的状态信息,并尝试关联一系列请求彼此之间的请求)。
  • 在服务器配置中,您定义服务器上 protected 区域,并定义启用访问的凭据。
  • 当首次请求保护区域内的任何对象时,服务器将以401 header ,WWW-Authenticate header 和授权质询以及可选内容进行响应。请求和响应过程已完成。
  • 浏览器会收到完整的响应,解析服务器响应中发送的授权质询,然后以人类可读的格式呈现给您。
  • 如果您选择取消授权过程,则浏览器将向您显示响应正文(如果有)。
  • 如果您选择提供登录凭据,则浏览器会以服务器请求的任何格式对它们进行编码,然后开始新的请求。
  • 当通过第二个请求请求保护区域内的任何对象时,服务器将验证或无效所提供的凭据,并返回所请求的对象,或者返回与以前相同的401 header 和内容。
  • 如果尝试提供凭据后浏览器接收到相同的401头/内容,则将再次要求您提供凭据,或者向您显示服务器发送的带有401头的响应正文。
  • 如果服务器验证了提供的凭据并返回了所请求的对象,则浏览器将继续对每个请求发送相同的凭据,直到当前的浏览器 session 终止为止。让我将此称为浏览器的“验证后模式”。

  • 需要注意的最重要的事情是,您甚至还没有从浏览器看到登录凭据发出的请求,就已经收到服务器的完整响应。

    浏览器甚至意识到需要向您提供登录凭据请求的唯一方式是,不仅存在401响应 header ,而且还存在 WWW-Authenticate header 和质询。

    如果您的401定制错误文档导致您的浏览器显示错误页面而不是请求登录凭据,则必须是未将身份验证 header 和质询,甚至可能是401状态代码本身未配置为随401错误文档一起提供。

    对于我们来说,这听起来很疯狂,但是对于服务器的非人为逻辑,即使从未发送过授权挑战,将错误文档发送给所有未经授权的请求以及将实际对象发送给所有浏览器仍然是非常合理的。 “认证后模式”。

    您可以通过注释掉自定义401错误文件指令,然后使用浏览器登录,加载 protected 页面,然后重新启用自定义401错误文件指令,然后刷新 protected 401,来查找是否发生了这种情况。浏览器中的页面已经处于“验证后模式”。

    我希望您的预授权浏览器将继续发送此请求的凭据,并且服务器将响应请求的 protected 对象。

    因此,所有授权的请求都将一如既往地正常工作,只是401错误文档和/或 header 不包含身份验证质询触发器,该触发器告知浏览器它需要询问您的凭据。

    关于.htaccess - 使用Errordocument 401会导致空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283045/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com