ASP.NET MVC制作404跳转实例(非302和200)
发布时间 - 2026-01-11 00:32:16 点击率:次产生404的原因主要有以下:

1.浏览器和爬虫:某些浏览器会请求网站的favicon.ico,而如果你的网站根目录下没有这个文件,那么浏览器会有一条404的log,同样搜索引擎会请求robots.txt。但这个影响不大。
2.用户输入了错误URL:某些用户不小心在浏览器地址栏加了一个字符或者删除了一个字符,导致服务器找不到请求的路径。
3.某些网站引用的地址过老:某个页面已经被删除,而其他网站依然引用,他人点击的时候服务器找不到请求的路径。
404与SEO:
本网站由于经过改版,所以有很多失效的链接,而我也提交了死链给百度,但过了半个月也不见百度删除那些失效的链接。后来我用站长工具查询那些链接的HTTP状态,发现竟然返回的是302,这就难怪了。
为了给用户友好的体验,我制作了404页面,并且在Application_Error中捕获404,然后Response.Redicet()到404页面。那时候因为不懂SEO,以为这就算做了404页面。结果发现,这样是做了一个302跳转,这样404的状态码就变成了302,而搜索引擎Spider请求的时候,返回的是302的话,它就会认为你这个网页是正常的!导致网站的失效链接一直不被搜索引擎删除,久而久之,网站的死链过得,就会得到搜索引擎的惩罚。所以,正确的404跳转应该是返回友好页面给用户的同时,返回404的HTTP状态码给Spider。
ASP.NET中404跳转的解决方案:
上一篇讲了ASP.NET中自定义错误页的三种方法,这里就不多说了!
使用的是第三种httpErrors也就是IIS错误页,原因如下:
- Application_Error:好像比较难做到404跳转的同时又返回404状态码,一般会返回302;
- customErrors:博主尝试使用的时候,失败了,学艺不精啊,哎;
- httpErrors:博主尝试使用的时候,碰巧解决了,所以就是它了;
下面就来讲具体如何操作!
IIS错误页的使用又分三种情况:
1.返回静态文件 2.返回动态页面 3.302重定向。
其中3直接忽略。
1.返回静态文件
使用此方法,需要准备一个静态html页面,然后放在硬盘里,指定路径的时候须给出绝对路径。
web.config中的写法
<system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="D:\ErrorPage\404.html" responseMode="File" /> </httpErrors> </system.webServer>
prefixLanguageFilePath表示客户端语言的文件目录,path表示文件相对于客户端语言目录的路径,responseMode表示响应类型,这里是File(文件)
IIS中的操作
两者选其一即可
由于博主尝试使用文件的时候以失败告终,所以这里不多说,说多了都是泪!
2.返回动态页面
web.config中的写法
</system.webServer> <httpErrors errorMode="Custom" existingResponse="Replace"> <remove statusCode="404" subStatusCode="-1" /> <error statusCode="404" prefixLanguageFilePath="" path="/ErrorPage/NotFound" responseMode="ExecuteURL" /> </httpErrors> </system.webServer>
与上面不同的就是responseMode="ExecuteURL"。
IIS中的操作
两者选其一即可
博主最后选择的这种方法,但是这种方法有几个坑需要注意!
1.不能指定网站相对目录下的静态HTML文件,比如404.html。
2.指定的动态页面cshtm、aspx等,需指定响应码为404。
以上两种情况如果不注意,那么你的404返回的响应码不是404也不是302而是200。
因为这种方法是返回网站根目录下的一个网页来作为404页面,而静态页面只要能访问到,那肯定就是200了。动态cshtml或者aspx如果没指定响应码,那么返回200也不奇怪。
所以说具体做法如下(以ASP.NET MVC为例):
public class ErrorPageController : Controller
{
public ActionResult NotFound()
{
Response.Status = "404 Not Found";
Response.StatusCode = 404;
return View();
}
}
建一个控制器ErrorPage,里面可以定义各种错误页面,这里只是404页面。
然后建一个NotFound视图,把404页面写漂亮一点。
OVER。
这个时候再去请求不存在的路径。
完美解决!
Demo下载地址:点击进入
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# asp.net
# mvc
# 404页面
# 302跳转
# 404
# win2008 r2中IIS7.5及以上设置404错误页面的正确方法
# IIS下自定义404页面返回200状态码的严重性及解决方法
# win2003 iis 404 设置方法与小技巧
# 架构师说比起404我们更怕200错误
# 的是
# 跳转
# 就会
# 找不到
# 这就
# 三种
# 这种方法
# 客户端
# 都是
# 我也
# 几个
# 也不
# 会有
# 死链
# 放在
# 过了
# 下载地址
# 有很多
# 说了
# 两种
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
开心动漫网站制作软件下载,十分开心动画为何停播?
焦点电影公司作品,电影焦点结局是什么?
如何在Windows虚拟主机上快速搭建网站?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
中山网站制作网页,中山新生登记系统登记流程?
制作企业网站建设方案,怎样建设一个公司网站?
Laravel如何配置任务调度?(Cron Job示例)
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
*服务器网站为何频现安全漏洞?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何获取上海专业网站定制建站电话?
如何在香港服务器上快速搭建免备案网站?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何在阿里云香港服务器快速搭建网站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
,在苏州找工作,上哪个网站比较好?
如何选择可靠的免备案建站服务器?
如何在云主机上快速搭建网站?
如何为不同团队 ID 动态生成多个“认领值班”按钮
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
南京网站制作费用,南京远驱官方网站?
如何注册花生壳免费域名并搭建个人网站?
如何用PHP工具快速搭建高效网站?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
JavaScript如何实现错误处理_try...catch如何捕获异常?
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
活动邀请函制作网站有哪些,活动邀请函文案?
如何用好域名打造高点击率的自主建站?
JavaScript如何操作视频_媒体API怎么控制播放
微信推文制作网站有哪些,怎么做微信推文,急?
中国移动官方网站首页入口 中国移动官网网页登录
大连网站制作公司哪家好一点,大连买房网站哪个好?
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何用西部建站助手快速创建专业网站?
微信公众帐号开发教程之图文消息全攻略
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
网站制作免费,什么网站能看正片电影?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
浅谈Javascript中的Label语句

