wordpress网站后缀HTML,wordpress单页主题制作视频教程,公司网站属于什么类型,简述网络营销的概念通过标题的三个问题 1、asp.net 404页面配置、 2、asp.net MVC 配置404页面、 3、iis 配置404页面#xff1b; 可以看出#xff0c;这是一篇了不得的问题#xff0c;并进行全面讲解#xff1b; 除了围绕以上三个核心问题外#xff0c;我们也对以下2个核心场景也作出分析… 通过标题的三个问题 1、asp.net 404页面配置、 2、asp.net MVC 配置404页面、 3、iis 配置404页面 可以看出这是一篇了不得的问题并进行全面讲解 除了围绕以上三个核心问题外我们也对以下2个核心场景也作出分析 1.MVC模式 2.传统模式 往往这2种模式是混合一起使用的。 一、MVC模式
如www.jijiyuan.com/news/details/1
按照URL分析
这个站点下有个“news”文件夹在“news”文件夹下有个“details”接着下面有个1
其实这样的路径是由MVC管道处理后的路径在项目中他是这样的
“news”是控制器
“details”是动作或者说是方法你也可以理解成页面
“1”是参数
代码如下 public class NewsController : Controller{// GET: Newspublic ActionResult Index(){return View();}public ActionResult Details(int id){return View();}}
二、传统模式
如www.jijiyuan.com/1.html
这1.html是真实存在的如果不存在会提示404错误如下图 三、解决“控制器”或“路径”不存在跳转指定页面 3.1、项目结构介绍 如上图我这里有一个名为“Error”的控制器代码如下
cs代码 public class ErrorController : Controller{// GET: Errorpublic ActionResult Rrror404(){return View();}}
html代码
!DOCTYPE htmlhtml
headmeta nameviewport contentwidthdevice-width /titleRrror404/title
/head
bodyh1 Rrror404 /h1p你访问的页面不存在点击跳转a href/首页/a/ph3a href/去首页/a/h3
/body
/html
3.2、【推荐】配置根目录的Web.config解决404错误问题 在你的站点找到Web.config文件文档结构如下
?xml version1.0 encodingutf-8?
configurationsystem.webcompilation debugtrue targetFramework4.5/httpRuntime targetFramework4.5/ /system.websystem.webServerhandlersremove nameExtensionlessUrlHandler-Integrated-4.0/remove nameOPTIONSVerbHandler/remove nameTRACEVerbHandler/add nameExtensionlessUrlHandler-Integrated-4.0 path*. verb* typeSystem.Web.Handlers.TransferRequestHandlerpreConditionintegratedMode,runtimeVersionv4.0//handlers /system.webServer
/configuration
我们需要将下面代码加入到【system.web】节点里面
customErrors modeOn defaultRedirect/Error/Rrror404error statusCode404 redirect/Error/Rrror404 /
/customErrors
加入后完整代码如下
?xml version1.0 encodingutf-8?
configurationsystem.webcompilation debugtrue targetFramework4.5/httpRuntime targetFramework4.5/ customErrors modeOn defaultRedirect/Error/Rrror404error statusCode404 redirect/Error/Rrror404 //customErrors/system.websystem.webServerhandlersremove nameExtensionlessUrlHandler-Integrated-4.0/remove nameOPTIONSVerbHandler/remove nameTRACEVerbHandler/add nameExtensionlessUrlHandler-Integrated-4.0 path*. verb* typeSystem.Web.Handlers.TransferRequestHandlerpreConditionintegratedMode,runtimeVersionv4.0//handlers /system.webServer
/configuration
3.2.1、注意 注意redirecturl里面的url不要填文件地址而是要填写请求404页面的控制器。 3.2.2 、mode属性说明 本地调试时用RemoteOnly属性发布时用On On指定启用自定义错误。如果没有指定 defaultRedirect用户将看到一般性错误。 Off指定禁用自定义错误。这允许显示详细的错误。 RemoteOnly指定仅向远程客户端端显示自定义错误并向本地主机显示 ASP.NET 错误。这是默认值。 3.2.3、再次访问
我们访问错误网站路径
访问
http://localhost:58146/Home/Index2
网站会字段跳转到
http://localhost:58146/Error/Rrror404?aspxerrorpath/Home/Index2 3.3、【不推荐】修改Global.asax解决404错误问题 如果你配置了Web.config则不需要修改Global.asax 如访问
http://localhost:58146/Home/Index2 在Global.asax文件中增加如下代码
protected void Application_Error(object sender, EventArgs e)
{Exception ex Server.GetLastError();if (ex is HttpException ((HttpException)ex).GetHttpCode() 404){Response.Redirect(/Error/Rrror404);}
}
完整代码
public class MvcApplication : System.Web.HttpApplication
{protected void Application_Start(){AreaRegistration.RegisterAllAreas();GlobalConfiguration.Configure(WebApiConfig.Register);FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);}protected void Application_Error(object sender, EventArgs e){Exception ex Server.GetLastError();if (ex is HttpException ((HttpException)ex).GetHttpCode() 404){Response.Redirect(/Error/Rrror404);}}
} 注意事项 在开发时候我们经常会在Global.asax中的Application_Error方法中使用Response.Redirect方法跳转到自定义错误页但有时候特别是当站点部署到 IIS 后Application_Error方法中使用Response.Redirect方法会失效当发生异常错误后还是显示的默认错误黄页。 其根本原因是尽管我们在Application_Error方法中使用了Response.Redirect方法但是当系统发生异常错误后Asp.Net认为异常并没有被处理所以不会跳转到Application_Error方法中Response.Redirect指向的页面最终还是会跳转到默认错误黄页。 解决这个问题的办法很简单就是在Application_Error方法中使用Response.Redirect做跳转前先调用Server.ClearError()方法告诉系统发生的异常错误已经被处理了这样再调用Response.Redirect方法系统就会跳转到自定义错误页面了。 增加代码后再次访问
http://localhost:58146/Error/Rrror404 3.4、如果是直接访问不存在的文件呢它还是会报错的
http://localhost:58146/1.html 这个时间你需要看第四节 四、访问不存在的静态资源404错误问题解决
4.1、背景介绍
如我的站点下没有1.html这个文件用户访问了报错404
http://localhost:58146/1.html 4.2、【推荐】配置根目录的Web.config解决不存在文件的404错误问题 我们需要在第三节代码基础上去修改【Web.config】
第三节代码如下
?xml version1.0 encodingutf-8?
configurationsystem.webcompilation debugtrue targetFramework4.5/httpRuntime targetFramework4.5/ customErrors modeOn defaultRedirect/Error/Rrror404error statusCode404 redirect/Error/Rrror404 //customErrors/system.websystem.webServerhandlersremove nameExtensionlessUrlHandler-Integrated-4.0/remove nameOPTIONSVerbHandler/remove nameTRACEVerbHandler/add nameExtensionlessUrlHandler-Integrated-4.0 path*. verb* typeSystem.Web.Handlers.TransferRequestHandlerpreConditionintegratedMode,runtimeVersionv4.0//handlers /system.webServer
/configuration
在【system.webServer】节点增加代码
httpErrors errorModeCustomremove statusCode404 subStatusCode-1 /error statusCode404 prefixLanguageFilePath path/Error/Rrror404 responseModeExecuteURL /
/httpErrors
完整代码
?xml version1.0 encodingutf-8?
configurationsystem.webcompilation debugtrue targetFramework4.5/httpRuntime targetFramework4.5/ customErrors modeOn defaultRedirect/Error/Rrror404error statusCode404 redirect/Error/Rrror404 //customErrors/system.websystem.webServerhandlersremove nameExtensionlessUrlHandler-Integrated-4.0/remove nameOPTIONSVerbHandler/remove nameTRACEVerbHandler/add nameExtensionlessUrlHandler-Integrated-4.0 path*. verb* typeSystem.Web.Handlers.TransferRequestHandlerpreConditionintegratedMode,runtimeVersionv4.0//handlers httpErrors errorModeCustomremove statusCode404 subStatusCode-1 /error statusCode404 prefixLanguageFilePath path/Error/Rrror404 responseModeExecuteURL //httpErrors/system.webServer
/configuration 详细节点说明请看第六节 再次访问http://localhost:58146/1.html 4.3、【推荐】你也可以通过配置IIS的站点来设置这个错误页面
在IIS中找到你的站点在【功能视图】中找到【错误页】 双击进入找到404配置项点击后在右侧有个“编辑”点击“编辑”弹出窗口你就可以编辑它了这个设置和【4.2小节】修改【Web.config】效果基本一直。 五、完整修改【Web.config】后的代码
5.1、Web.config完整代码
?xml version1.0 encodingutf-8?
!--有关如何配置 ASP.NET 应用程序的详细信息请访问https://go.microsoft.com/fwlink/?LinkId301880
--
configurationappSettingsadd keywebpages:Version value3.0.0.0/add keywebpages:Enabled valuefalse/add keyClientValidationEnabled valuetrue/add keyUnobtrusiveJavaScriptEnabled valuetrue//appSettingssystem.webcompilation debugtrue targetFramework4.5/httpRuntime targetFramework4.5/customErrors modeOn defaultRedirect/Error/Rrror404error statusCode404 redirect/Error/Rrror404 //customErrors/system.websystem.webServerhandlersremove nameExtensionlessUrlHandler-Integrated-4.0/remove nameOPTIONSVerbHandler/remove nameTRACEVerbHandler/add nameExtensionlessUrlHandler-Integrated-4.0 path*. verb* typeSystem.Web.Handlers.TransferRequestHandlerpreConditionintegratedMode,runtimeVersionv4.0//handlershttpErrors errorModeCustomremove statusCode404 subStatusCode-1 /error statusCode404 prefixLanguageFilePath path/Error/Rrror404 responseModeExecuteURL //httpErrors/system.webServer
/configuration
5.2、重点代码1对访问路径错误进行404处理 customErrors modeOn defaultRedirect/Error/Rrror404error statusCode404 redirect/Error/Rrror404 //customErrors 注意redirecturl里面的url不要填文件地址而是要填写请求404页面的控制器。 mode属性说明 本地调试时用RemoteOnly属性发布时用On On指定启用自定义错误。如果没有指定 defaultRedirect用户将看到一般性错误。Off指定禁用自定义错误。这允许显示详细的错误。RemoteOnly指定仅向远程客户端端显示自定义错误并向本地主机显示 ASP.NET 错误。这是默认值。 5.3、重点代码2对访问无效文件进行404处理 httpErrors errorModeCustomremove statusCode404 subStatusCode-1 /error statusCode404 prefixLanguageFilePath path/Error/Rrror404 responseModeExecuteURL //httpErrors 详细节点说明请看第六节 六、Web.config配置节点介绍 本节点摘录 iis7设置404,使用web.config配置404,HTTP错误httpErrors模块-豫章小站 您可以httpErrors在ApplicationHost.config文件中的服务器级别以及相应Web.config文件中的站点和应用程序级别配置元素。
6.1、兼容性
版笔记IIS 10.0httpErrors在IIS 10.0中未修改该元素。IIS 8.5httpErrorsIIS 8.5中未修改该元素。IIS 8.0httpErrors在IIS 8.0中未修改该元素。IIS 7.5该allowAbsolutePathsWhenDelegated属性已添加到httpErrorsIIS 7.5中的元素IIS 7.0该httpErrors元素是在IIS 7.0中引入的。IIS 6.0该httpErrors元素替换了IIsWebService配置数据库对象的IIS 6.0 HttpErrors属性。
6.2、属性
属性描述allowAbsolutePathsWhenDelegated可选的布尔属性。 设置为true时httpErrors委派节时允许自定义错误页面使用绝对路径。设置为false时仅允许相对于站点根目录的路径。 默认值为false。 defaultPath可选字符串属性。 指定自定义错误页面的默认路径。路径类型由defaultResponseMode属性确定。如果选择“ 文件”则返回文件路径。如果选择ExecuteURL或Redirect路径类型则返回自定义错误页面的URL。 defaultResponseMode可选的枚举属性。 指定返回自定义错误内容的方式。 所述defaultResponseMode属性可以是以下可能的值中的一个; 默认是File。 值描述File提供静态内容例如自定义错误的.html文件。如果responseMode设置为File则路径值必须是文件路径。 数值是0。 ExecuteURL提供动态内容例如自定义错误的.asp文件。如果responseMode设置为ExecuteURL则路径值必须是服务器相对URL。 数值是1。 Redirect将客户端浏览器重定向到包含自定义错误文件的其他URL。如果responseMode设置为Redirect则路径值必须是绝对URL。 数值是2。 detailedMoreInformationLink可选字符串属性。 指定页面底部显示的链接该链接包含有关特定错误的更详细信息的页面。您可以使用此属性将最终用户指向自定义位置以获取错误信息。状态子状态HRESULT和消息ID作为查询字符串的一部分发送。 默认值为HTTP status code overview - Internet Information Services | Microsoft Learn。 errorMode可选的枚举属性。 指定是否启用HTTP错误。 所述errorMode属性可以是以下值中的一个; 默认是DetailedLocalOnly。 值描述DetailedLocalOnly如果请求来自本地计算机则返回详细的错误信息如果请求来自外部计算机则返回自定义错误消息。 数值是0。 Custom用您指定的自定义页面替换模块或服务器生成的错误。此模式可用于向最终用户提供更友好的错误消息。 注意此设置会关闭详细错误即使对于本地请求也是如此。 数值是1。 Detailed将详细的错误信息发送回客户端。此模式对于测试和调试网站和应用程序非常有用。 数值是2。 existingResponse可选的枚举属性。 指定当HTTP状态代码是错误的即响应代码 400会发生什么情况的现有响应 该existingResponse属性可以是以下值中的一个; 默认是Auto。 值描述Auto仅在设置了SetStatus标志时才保持响应不变。 数值是0。 Replace即使设置了SetStatus标志也会替换现有响应。 数值是1。 PassThrough如果存在现有响应则保持响应不变。 数值是2。
子元素
元件描述error可选元素。 向HTTP错误集合添加HTTP错误。 remove可选元素。 从HTTP错误集合中删除对HTTP错误的引用。 clear可选元素。 从HTTP错误集合中删除对HTTP错误的所有引用。
6.3、配置示例
以下配置示例如果包含在Web站点或应用程序的Web.config文件中使用errorMode属性仅允许在本地计算机上显示详细的错误消息。它还使用defaultResponseMode属性来设置站点或应用程序的响应模式。然后该示例删除500状态代码的继承错误消息。接下来它将prefixLanguageFilePath属性设置为IIS应搜索新自定义错误页面的目录并将path属性设置为500.htm即包含自定义错误消息的文件。
configurationsystem.webServerhttpErrors errorModeDetailedLocalOnly defaultResponseModeFile remove statusCode500 /error statusCode500prefixLanguageFilePathC:\Contoso\Content\errorspath500.htm //httpErrors/system.webServer
/configuration 七、参考 深入解析asp.net中mvc4自定义404页面分享 - 双恒网络-免费PHP网站源码模板,插件软件资源分享平台 iis7设置404,使用web.config配置404,HTTP错误httpErrors模块-豫章小站 webmvcASP.NET设置404错误页面c#_c# mvc自定义404-CSDN博客