asp.net – 访问IIS7 404重定向页面中的原始URL
|
我有一个.aspx页面作为IIS 7上设置的站点上的自定义404页面.我需要检索用户尝试访问的原始URL,以便在404页面上进行一些处理.诀窍是,我需要专门处理不包含.aspx扩展名(例如http://example.com/testurl)的404,这不会通过ASP.NET的自定义错误部分路由.我可以配置IIS来指向我的自定义404,但是在这一点上,我不知道如何获取我的原始URL?有人知道这是否可行? 谢谢, 麦克风 解决方法是的,可以获得导致404错误的URL,您只需要确保IIS配置正确.有两种情况需要处理,一种是来自.aspx或由.NET处理的其他页面的错误,另一种是错误来自不良文件夹(如您的问题http:/ /example.com/testurl)或不由.NET处理的文件名(例如* .htm).在IIS 7中,您需要在Web应用程序的“ASP.NET”部分中的“.NET错误页面”下,以及“IIS”部分的“错误页面”下配置自定义404错误. web.config更改最终看起来像这样: <system.web>
<!-- other system.web stuff -->
<customErrors defaultRedirect="/Error404.aspx" mode="On" redirectMode="ResponseRewrite">
<error redirect="/Error404.aspx" statusCode="404" />
</customErrors>
</system.web>
<system.webServer>
<!-- other system.webServer stuff -->
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/Error404.aspx" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
注意:如果您希望404页面实际返回404个邮件,并且我认为不能通过IIS进行设置,上面列出的redirectMode =“ResponseRewrite”很重要. 在我的例子中,我创建了一个名为Error404.aspx的页面来处理所有404错误.当.NET页面(.aspx等)抛出404异常时,原始文件名可以在aspxerrorpath querystring变量中找到.当常规的htm或其他页面导致404错误时,可以从Request.RawUrl属性读取原始路径.我在我的Error404.aspx页面中使用以下代码来处理这两种情况: public partial class Error404 : System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
OriginalUrl = Request.QueryString["aspxerrorpath"] ?? Request.RawUrl;
Server.ClearError();
Response.Status = "404 not found";
Response.StatusCode = 404;
}
public string OriginalUrl { get; private set; }
}
默认情况下,404错误页面不会返回404状态代码,因此您需要手动设置.详见this post. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Restful MVC Web Api继承
- log4net在ASP.NET中的唯一请求ID
- asp.net-mvc-3 – ASP.NET MVC 3未找到视图“错误”或其主文
- 如果ASP.NET应用程序的CustomErrors设置为Off,有没有办法以
- oauth-2.0 – 在MVC6应用程序中的OAuth令牌到期
- asp.net-mvc – 如何禁用自动完成在MVC Html助手
- asp.net-mvc – MVC Razor获取月份名称
- asp.net-core – CoreCLR中的MD5CryptoServiceProvider的替
- 可以将图像添加到ASP.NET按钮吗?
- asp.net-mvc – 在ASP.NET MVC 3中的子文件夹中添加视图
- asp.net – MembershipProvider在代码中更改连接
- iCalendar格式中关于RRule的解析和生成
- asp.net从指定文化获取.resx的所有资源(Resource
- asp.net-mvc – ASP.NET MVC中的动态范围验证2
- asp.net-mvc-4 – MVC 4日期文化问题?
- ASP.NET:如何处理并行请求
- asp.net – 哪里是.ASPXAUTH cookie
- asp.net-web-api – asp.net web api self hosti
- 如何在ASP.NET页面上注册自定义服务器控件
- asp.net-mvc-4 – IE中的MVC VS2012 jquery.vali
