asp.net – web.config不转发到非.aspx页面上的404错误页面
目的
我希望缺少的页面的所有网址转发到我的404页面,这是我的根目录404error.aspx 问题 到目前为止,只有具有.aspx的URL才能正常工作.例如,如果输入4error.aspx,您将被重定向到错误页面. /404error.aspx?aspxerrorpath=/4error.aspx 背景 我不是.NET开发人员,所以我接手了这个使用经典的.aspx的项目.所以我没有使用任何Microsoft产品在模板或框架中构建任何这个.我只是在Sublime文本中编码. 我已经研究了 > 404 Redirecting for non aspx pages – 答案不完整或不工作. 我看到我在Google上发现的许多文章,但没有一个完整的例子,实际上有效. 码 这是我在web.config中开始的整个代码 web.config中 <configuration> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="~/404error.aspx" /> <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="de-DE" /> </system.web> </configuration> 我也从Microsoft发现了这个例子(404error.aspx是我的修改) web.config(2) <configuration> <appSettings/> <connectionStrings/> <system.web> <compilation debug="true" /> <!-- Turn on Custom Errors --> <customErrors mode="On" defaultRedirect="/404error.aspx"> <error statusCode="404" redirect="/404Error.aspx"/> </customErrors> </system.web> </configuration> 这也没有处理没有.aspx的页面 然后我尝试了这个例子 web.config(3) <?xml version="1.0"?> <configuration> <system.web> <customErrors mode="RemoteOnly" defaultRedirect="~/404error.aspx" /> <error statusCode="404" redirect="~/404error.aspx" /> <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="de-DE" /> </system.web> <system.webServer> <httpErrors> <remove statusCode="401" subStatusCode="-1" /> <remove statusCode="403" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="500" subStatusCode="-1" /> <!-- full url when responsemode is Redirect --> <error statusCode="401" path="http://foo.com/default.htm" responseMode="Redirect" /> <!-- local relative path when responsemode is ExecuteURL --> <error statusCode="403" path="~/404error.aspx" responseMode="ExecuteURL" /> <error statusCode="404" path="~/404error.aspx" responseMode="ExecuteURL" /> <error statusCode="500" path="~/404error.aspx" responseMode="ExecuteURL" /> </httpErrors> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer> </configuration> 显然,我必须改变404页以外的路径,但我只想测试这些错误.最后一个web.config工作更糟糕. 你能告诉我需要修改的内容吗?我会欣赏一个完整的<配置>因为我一直困惑什么在哪里. 编辑1 我读过很多开发人员建议将其作为HTML页面.所以现在我的页面是404.html这是我更新的web.config <configuration> <system.web> <customErrors mode="On" redirectMode="ResponseRewrite"> <error statusCode="404" redirect="~/404.html"/> </customErrors> <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="de-DE" /> </system.web> <system.webServer> <httpErrors errorMode="Custom" defaultResponseMode="File"> <remove statusCode="404"/> <error statusCode="404" path="~/404.html"/> </httpErrors> </system.webServer> </configuration> 解决方法
您需要配置< httpErrors>元件.这将配置静态文件和服务器页面的错误页面.
您的第三次尝试“web.config(3)”和“编辑1”几乎在那里.问题是您不能在这里使用应用程序相对路径(例如:“?/ 404.html”),它们必须与站点根目录相对(例如:“/404.html”). <?xml version="1.0"?> <configuration> <system.webServer> <httpErrors> <remove statusCode="401" subStatusCode="-1" /> <remove statusCode="403" subStatusCode="-1" /> <remove statusCode="404" subStatusCode="-1" /> <remove statusCode="500" subStatusCode="-1" /> <!-- full url when responsemode is Redirect --> <error statusCode="401" path="http://foo.com/default.htm" responseMode="Redirect" /> <!-- local relative path when responsemode is ExecuteURL --> <error statusCode="403" path="/404error.aspx" responseMode="ExecuteURL" /> <error statusCode="404" path="/404error.aspx" responseMode="ExecuteURL" /> <error statusCode="500" path="/404error.aspx" responseMode="ExecuteURL" /> </httpErrors> </system.webServer> </configuration> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 静态内容的MVC客户端缓存不起作用
- asp.net – 页面生命周期中的哪个位置是母版页的加载事件(不
- asp.net-mvc – 我应该如何测试从控制器发送电子邮件?
- asp.net-mvc – 使用实体框架的没有存储库模式的依赖注入
- azure – WebApi组织帐户 – 用户凭据验证失败
- asp.net-mvc-3 – 在部署服务器中编辑ASP.NET MVC 3 resx文
- ASP.NET Webforms ASP.NET Ajax与ASP.NET MVC和Ajax框架自由
- asp.net-mvc – MVC 4是否有内置的站点地图解决方案?
- .net – coreclr的哪个版本?
- asp.net-mvc – ASP.Net MVC和jQuery表单插件上传文件
- asp.net-mvc – 为什么在ASP.NET MVC 3中,默认路
- asp.net – 如何在没有查找AspNetUserRoles表的情
- ASP.NET:如何更改每行中使用的itemTemplate?
- asp.net-mvc – 我只是不了解TDD单元测试(Asp.Ne
- asp.net-mvc – ASP.NET中的Dapper,ODATA和IQuer
- 设计模式 – 如何在自己的应用程序域中分离webap
- asp.net access web.config denied
- asp.net – 从IEnumerable获取不同的项目
- 如何在ASP.Net Core 2.0应用程序中使用Bootstrap
- asp.net-mvc – 如何将数据属性放在Ajax.BeginFo