标签: custom-error-pages

为IIS7网站配置重定向的自定义ASP 404页面

我们正在将现有网站从IIS6迁移到IIS7,但在设置404错误页面时遇到了一些困难.我们的404-errorpage是这样的:

  • 自定义ASP页面会根据"特殊"URL的简短列表检查URL(例如http://example.com/limited-offers).
  • 如果URL已知,则会重定向到该页面的实际URL.
  • 否则,访问者将被重定向到具有404状态代码的静态错误.

有了IIS6,这就像宣传的一样,但是在IIS7中,有些东西已经改变了.当IIS7遇到定义了errorpage的状态码时,它将始终显示已配置的错误.如果我们的静态错误与404状态代码,这意味着IIS7将再次执行自定义ASP页面.这导致无限重定向.

我们发现通过在Web.Config中添加设置可以避免这种行为

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

但是,添加此项后,我们的自定义ASP页面拒绝重定向.在与Fiddler核实之后,似乎IIS7强制404状态代码,覆盖我们的302重定向.

谁能推荐另一种方法来解决我们的问题?

error-handling iis-7 custom-error-pages asp-classic http-status-code-404

2
推荐指数
1
解决办法
2万
查看次数

404自定义错误页面重定向不显示丢失的文件URL

我的网站上有一个自定义404错误页面,但在网站上做其他事情时,错误页面很难弄清楚我丢失的文件问题是什么,因为它重定向到给定的html或php文件并获取URL丢失的文件从地址栏中取出,并将其替换为自定义错误页面的URL.

因此,例如,当用户登录到站点时,我将它链接到php文件,当他们点击提交时,然后浏览器将它们直接带到404错误页面,所以我看不出问题实际上是链接到一个比它应该更高的目录.

我已经尝试使用php将丢失文件的URL打印到页面,但是服务器只抓取404错误页面的URL,而不是原始丢失的文件URL.以下是我尝试这样做的方法:http://members.cox.net/midian/tutorials/php404.htm

如何在地址栏中保留原始缺失的URL时显示自定义错误页面,或者将缺少的文件的URL打印到页面?

php url redirect custom-error-pages http-status-code-404

2
推荐指数
1
解决办法
5941
查看次数

在ASP.Net Web API中处理HandleUnauthorizedRequest

我正在开发ASP.Net Web API应用程序,我使用AuthorizeAttribute进行身份验证.当身份验证失败时,执行的代码就是这个.

protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
    {
        HttpContext.Current.Response.AddHeader("AuthenticationStatus", "NotAuthorized");
        actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Forbidden);
        return;
    }
Run Code Online (Sandbox Code Playgroud)

此代码导致从浏览器显示未授权的请求页面,但我想要的是显示我设计的自定义页面.我怎么做?任何帮助表示赞赏.

提前致谢.

asp.net authorization custom-error-pages asp.net-web-api

2
推荐指数
1
解决办法
7133
查看次数

htaccess文件全部拒绝,重定向到403.shtml上找不到的404,但没有定义自定义错误页面

我正在cPanel中的新插件域中设置一个快速内部项目.这个特定的安装了SSL证书.我正在构建我的.htaccess并添加了一个<Files config.php>指令,deny from all以便我的config.php文件无法访问.我意识到将它存储在Web根目录之外是理想的,但在这种情况下我不能.

通常情况下,我希望www.domain.com/config.php在浏览器中获得Apache的默认403 Forbidden页面.这是在同一服务器上的其他域上发生的情况.但在这种情况下,我得到404未找到错误,说明:

未找到
在此服务器上找不到请求的URL /403.shtml.
此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误.

如果我试图定义自定义错误文档,我通常会期待这个,但在这种情况下,我不是!
使该域与同一cPanel帐户中的所有其他域不同的唯一因素是它具有SSL证书.无论使用http还是https导航,此404错误都是相同的.我已经尝试清除缓存,仍然是相同的.

任何人都可以在我的.htaccess中看到任何可能导致此问题的内容吗?

DirectoryIndex /index.php

Options -Indexes +FollowSymLinks
ServerSignature Off

# PARSE PHP IN OTHER FILES
# AddType FOR PHP AS APACHE MODULE, AddHandler FOR CGI
AddType application/x-httpd-php .ics .xml

# ATTEMPT FORCE PDF DOWNLOAD
AddType application/octet-stream .pdf

# PREVENT ACCESS TO CONFIG
<Files config.php>
order allow,deny
deny from all
</Files>

# CACHING
# http://httpd.apache.org/docs/current/mod/mod_headers.html
<FilesMatch "\.(js|css|ico|png|gif|jpg)$">
Header set Cache-Control "max-age=172800, public, …
Run Code Online (Sandbox Code Playgroud)

apache .htaccess custom-error-pages

2
推荐指数
1
解决办法
1万
查看次数

IIS for Windows 7中的自定义错误页面

在Windows 7中,我正在尝试设置自定义错误页面.一个用于404,一个用于500,一个用于捕获用户在超时时遇到的任何其他错误(客户端或服务器端),或者当asp进行编译时出现故障.

404.htm
500.htm
error.htm
Run Code Online (Sandbox Code Playgroud)

只是非常简单的html页面,说错误,没有任何技术,如默认值.这篇文章这篇文章似乎是在谈论在ASP中制作错误页面,而不仅仅是采用html文件并将其设置为自定义错误页面.

在IIS中,我已经转到了不适用于ASP的错误页面选择工具

IIS错误菜单

并将此信息输入Edit error pages settings对话框

我输入的完整地址:WebvView\webview_error_pages\error.htm(通过选择我点击旁边的elipses按钮进行浏览.(我已经缩短了这篇文章的所有这些地址).

在此输入图像描述

自定义默认地址有效.但是,当我尝试为404创建一个错误页面时:

对话为404

404出现在列表中

并尝试转到不存在的页面,我收到这个简单的错误消息:

由于发生内部服务器错误,无法显示页面.

不是我的.而不是我设置自定义404之前的默认设置.

我究竟做错了什么?

谢谢!

编辑

另外,我刚刚更改了ASP的某些部分并得到了运行时错误,而不是我的自定义错误.有没有办法阻止用户看到这些可怕的技术页面?

编辑 这是其他状态菜单的xml代码:

    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" />
        <customErrors defaultRedirect="webview_error_pages/error.htm" mode="On">
        </customErrors>
  </system.web>
    <system.webServer>
        <httpErrors errorMode="Custom">
            <remove statusCode="502" subStatusCode="-1" />
            <remove statusCode="501" subStatusCode="-1" />
            <remove statusCode="500" subStatusCode="-1" />
            <remove statusCode="412" subStatusCode="-1" />
            <remove statusCode="406" subStatusCode="-1" />
            <remove statusCode="405" subStatusCode="-1" />
            <remove statusCode="401" subStatusCode="-1" />
            <remove statusCode="403" subStatusCode="-1" />
            <remove statusCode="404" subStatusCode="-1" />
        </httpErrors>
    </system.webServer>
Run Code Online (Sandbox Code Playgroud)

再次感谢!

asp.net iis custom-error-pages windows-7

2
推荐指数
1
解决办法
5747
查看次数

Yii2,模块错误页面未显示但在错误404时显示空白页面

我已经尝试actionError在模块DefaultController中编写自己的,只是为了呈现错误页面(HTML仅用于测试),它也只是显示空白页面而不是显示错误页面.

我在下面做正确的方法吗?仅当我尝试访问模块路径中的不存在页面时,它才显示空白页面.

在我的模块类中,我errorHandlerinit()函数中配置了如下组件:

public function init()   
{   
    parent::init();   
    // initialize the module with the configuration loaded from config.php   
    \Yii::configure($this, require(__DIR__ . '/config.php'));   

    \Yii::$app->setComponents([
        'errorHandler' => [
            'class' => 'yii\web\ErrorHandler',
            'errorAction' => 'studconsult/default/error',
        ] // set error action route - this to be error action in DefaultController
    ]);             
}
Run Code Online (Sandbox Code Playgroud)

在我的DefaultController班上,我的代码如下:

public function actions()   
{    
    return [    
        'error' => [    
            'class' => 'yii\web\ErrorAction',    
        ],    
    ];    
}
Run Code Online (Sandbox Code Playgroud)

error-handling custom-error-pages yii2

2
推荐指数
1
解决办法
5786
查看次数

HTTP错误404.0 - 在MVC 5中找不到

我在MVC 5.i的项目想要handel 404.我做到了,但问题是

当我使用以下URL访问视图时,一切正常并且符合预期:

http://localhost/Hotels/Index30701000000
Run Code Online (Sandbox Code Playgroud)

但是当我使用以下URL访问视图时,我收到404.0错误消息(错误如下所示)

http://localhost/Hotels/Edit/09099999dfdfb                       
http://localhost/Hotels/Edit/090/20130701000000
Run Code Online (Sandbox Code Playgroud)

错误:HTTP错误404.0 - 未找到您要查找的资源已被删除,名称已更改或暂时不可用.

我的代码是

调节器

public class ErrorController : Controller
{
    // GET: Error
    public ActionResult Unauthorized()
    {
        Response.StatusCode = 404;
        Response.TrySkipIisCustomErrors = true;
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

RouteConfig

    routes.MapRoute(
        name: "Unauthorized",
        url: "Unauthorized/{action}/{id}",
        defaults: new
        {
            controller = "Error",
            action = "Unauthorized",
            id = UrlParameter.Optional
        }
    );
Run Code Online (Sandbox Code Playgroud)

Global.asax中

    protected void Application_Error()
    {
        Exception exception = Server.GetLastError();
        HttpException httpException = exception as HttpException;
    }
Run Code Online (Sandbox Code Playgroud)

webconfig

  <system.web>
    <customErrors mode="On" defaultRedirect="Error">
      <error statusCode="404" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net custom-error-pages http-status-code-404 asp.net-mvc-5

2
推荐指数
1
解决办法
8325
查看次数

在ASP.Net URL中禁用aspxerrorpath参数

我已将以下内容添加到我的web.config中,以将用户重定向到自定义错误页面而不是默认页面

'/'应用程序中的服务器错误.

错误信息.

用户被重定向到 error.html?aspxerrorpath=/paymentservices.svc

有没有办法删除该?aspxerrorpath=/paymentservices.svc部分?

web.config中:

<system.web>
    <customErrors defaultRedirect="~/ErrorPages/error.html"
  mode="On" xdt:Transform="Replace">
    <error statusCode="500" redirect="~/ErrorPages/error.html"/>
    <error statusCode="404" redirect="~/ErrorPages/error.html"/>
    </customErrors>
</system.web>
Run Code Online (Sandbox Code Playgroud)

asp.net web-config custom-error-pages custom-errors

2
推荐指数
1
解决办法
3055
查看次数

NGINX:将请求详细信息放在自定义 404.json 返回上

对于 404s 和 500s/502s/504s 错误,我返回自定义 JSON 错误页面:

{
    "response":
    {
            "status": "EXCEPTION_404_NOT_FOUND",
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的sites-enabled/service_nginx.conf中,我将其设置如下:

error_page 404 /404.json;
location /404.json {
    internal;
    root /temp/error_response_templates;
}
Run Code Online (Sandbox Code Playgroud)

这工作正常。也就是说,每次 404 都会返回 JSON。但我想将请求或一些请求详细信息添加到返回的 JSON 中。例如,对于http://service.com/param1/param2/,如果遇到 404,我想在返回的 JSON 中包含 param1 和 param2。像这样:

{
    "response":
    {
        "status":"EXCEPTION_404_NOT_FOUND",
        "param1":<param1 value>,
        "param2":<param2 value>,
    }
}
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是,有人可以帮我怎么做吗?提前致谢!

python json nginx custom-error-pages

2
推荐指数
1
解决办法
4018
查看次数

ASP.net web.config没有捕获所有404的

在我的web.config中,我有:

    <customErrors mode="On" defaultRedirect="~/Error.aspx" redirectMode="ResponseRewrite">
        <error statusCode="500" redirect="~/Error.aspx" />
        <error statusCode="404" redirect="~/404.aspx" />
    </customErrors>
Run Code Online (Sandbox Code Playgroud)

然而,使用这些URL,只有定义了文件扩展名的第二个工作,另一个返回蓝色屏幕404"应用程序中的服务器错误".

http://127.0.0.1/scirranew/invalidpath

http://127.0.0.1/scirranew/invalidpath.aspx
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我在ASP.net 4,IIS 7.5上.

asp.net web-config custom-error-pages http-status-code-404

1
推荐指数
1
解决办法
5148
查看次数