Questions tagged «custom-errors»

4
IIS 7.5:如何使用Windows身份验证配置自定义“身份验证错误”页。401标头问题
我有一个在IIS 7.5下运行的php网站。该站点由Windows身份验证保护,并且可以正常运行: 当用户访问该站点时,系统会要求他们输入用户名/密码并通过身份验证。如果用户单击“取消”或3次输错密码,则会显示401错误页面: 现在,我想显示自定义页面来解释如何登录。因此,我转到“错误”页面,选择状态码401.2并将其指向我要显示的页面: 然后,确保每个人都打开了自定义错误。还有kaa-boom!身份验证不再起作用,不会向用户显示密码提示。如文档所述,Windows身份验证的工作原理是先发送401答复,然后浏览器要求用户提供提供者凭据,然后他们确定下一步要做什么。 此处发生的情况:在首次请求页面时,IIS尝试发送401标头,但注意到web.config表示“在401上重定向到此页面”。而不是身份验证,它只提供重定向页面。 我尝试替换401、401.1、401.2-没什么区别。 我在做什么错以及如何在用户身份验证错误上给出自定义页面? ps这是web.config: <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpErrors errorMode="Custom"> <remove statusCode="500" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="401" subStatusCode="-1" /> <error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" /> <error statusCode="404" prefixLanguageFilePath="" path="/not_restricted/404.htm" responseMode="ExecuteURL" /> </httpErrors> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webServer> …

2
Apache:将不安全的请求发送到安全端口…要重定向
前言 首先:一个简单的端口80->端口443重写将无法解决此问题。在几乎之前的每个问题(邮件主题,论坛主题等)中,我发现这是第一个无知的响应,并且被多次模仿。 其次:是的,我知道您不能在同一端口上提供HTTP和HTTPS通信。 不是那样的 场景: Apache Server通过端口乘法托管多个站点。80端口是一个公共站点。端口443提供该站点的安全版本。 端口7443、8443和9443分别服务于单独的SSL安全站点。 如果用户输入了错误的URL,或者给出了无效的链接,请说出http://hostname.tld:7443,并为他们提供以下荒谬页面: 代替服务器,只需将它们重定向到https://hostname.tld:7443。 我的问题是,如何以Zeus的屁眼的名义修改Apache的行为或此错误消息以自动重定向用户? 即使为HTTPS配置了Apache,Apache显然仍在处理非https请求(以显示该错误消息)。对我而言,不仅默认情况下进行重定向似乎非常愚蠢,而且即使我不同意我的理解,我仍然可以理解为什么他们采用了他们的行为。所以我的问题是:您可以更改它吗?他们正在处理错误SOMEWHERE,并且将Apache作为配置的聚宝盆,这可以说是在某处处理该行为的指令,但到目前为止,我在进行了几个小时的修补后仍无法找到它。 更新: 我尝试了多种方法,包括: 使用ErrorDocument 400指令来获取仅发送Status 301和Location标头的CGI和PHP脚本。这将导致空白页。ErrorDocument 400 https://hostname.tld:7443简单地使用将导致该链接显示在页面上。 几乎mod_rewrite可以使用I或Google的所有组合,包括完全指导该网站的全面声明;这些永远都行不通。从字面上看,他们什么都不做。我猜想Apache甚至在尝试处理重写指令之前都会出现上述错误。 由于自定义端口的使用,我无法使用基于端口的重定向。我无法使用基于脚本的重定向,因为由于http / https不匹配,它们无法得到服务。我几乎愿意将其归结为错误或意外行为,但是有人预见到了要在其中放置非常自定义的错误消息的想法,他们没有理会您可能只是想将其发送到他们已经提供了 URL ?

1
为什么Nginx的proxy_intercept_errors指令需要重写才能正常工作?
以下是Nginx服务器配置示例。没有“魔术符”位置块,代理的错误内容将导致Nginx 404页面,而不是提供自定义的错误页面。 删除proxy_intercept_errors指令可为带有正确的http错误代码标头的正确的代理错误页面提供服务。 不管魔术护身符的存在如何,都能正确呈现非代理错误页面。 关于到底发生了什么的任何想法? server { server_name mydomain.com ""; listen 80; root /var/www; error_page 400 401 402 403 404 500 501 502 503 504 /admin/error_page.htm; proxy_intercept_errors on; location /proxy/ { proxy_read_timeout 60s; proxy_set_header Host $host; proxy_pass http://myservers; } location /test404/ { return 404; } location /admin/ { # this …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.