如何知道用户访问了一个网站不存在的网址?

时间:2022-09-30 23:53:48
首先,我在web.config中配置了customErrors节点:
<error statusCode="404" redirect="Nopage.html"/>

然后,当我访问网址/a.aspx时(网站根目录下不存在a.aspx这个文件)
是会跳到:/Nopage.html?aspxerrorpath=/a.aspx
这一点是没有错的。

但这不能满足我的要求:
aspxerrorpath参数只会把用户试图访问的页面传过来,(即a.aspx)
但如果用户访问的是/a.aspx?id=1
这时仍然是跳转到/Nopage.html?aspxerrorpath=/a.aspx
用户访问时所带的页面参数id=1并没有带过来。

第二:仅访问不存在的aspx时才会跳转到Nopage.html,而访问htm时则不会。比如,我访问
/b.html
(网站根目录同样不存在b.html这个文件)就不会跳到Nopage.html

6 个解决方案

#1


你需要用httpErrors而不是customErrors
https://msdn.microsoft.com/en-us/library/ms690497%28v=vs.90%29.aspx

#2


引用 1 楼 shingoscar 的回复:
你需要用httpErrors而不是customErrors
https://msdn.microsoft.com/en-us/library/ms690497%28v=vs.90%29.aspx

看不懂,没有更多帮助信息了吗?

#3


问题一,从程序角度,无法获取那个参数id=1,IIS是将那个页面转移到Error页面,原页面被丢弃,至于aspxerrorpath参数,是IIS给你的,所以要想取得那个参数,就的研究IIS了,我测试过,那个参数id=1,在IIS 日志里有

问题二,web.config配置只能管辖到aspx。html要设置IIS,在IIS里也有404错误处理,在那里设置转向即可。方法:进去IIS,选中根目录(一般就是计算机名)--->右边窗口(从上到下分ASP.NET,FTP,IIS三大组)--->在IIS里找到”错误页“

#5


1、可以试下通过Request.UrlReferrer能否取到
2、可以查下urlrewrite如何设置html后缀的,然后试验下配置里面是否可以同样配置成html走ISAPI管道

#6


引用 3 楼 From_* 的回复:
问题一,从程序角度,无法获取那个参数id=1,IIS是将那个页面转移到Error页面,原页面被丢弃,至于aspxerrorpath参数,是IIS给你的,所以要想取得那个参数,就的研究IIS了,我测试过,那个参数id=1,在IIS 日志里有

问题二,web.config配置只能管辖到aspx。html要设置IIS,在IIS里也有404错误处理,在那里设置转向即可。方法:进去IIS,选中根目录(一般就是计算机名)--->右边窗口(从上到下分ASP.NET,FTP,IIS三大组)--->在IIS里找到”错误页“

非常感谢

#1


你需要用httpErrors而不是customErrors
https://msdn.microsoft.com/en-us/library/ms690497%28v=vs.90%29.aspx

#2


引用 1 楼 shingoscar 的回复:
你需要用httpErrors而不是customErrors
https://msdn.microsoft.com/en-us/library/ms690497%28v=vs.90%29.aspx

看不懂,没有更多帮助信息了吗?

#3


问题一,从程序角度,无法获取那个参数id=1,IIS是将那个页面转移到Error页面,原页面被丢弃,至于aspxerrorpath参数,是IIS给你的,所以要想取得那个参数,就的研究IIS了,我测试过,那个参数id=1,在IIS 日志里有

问题二,web.config配置只能管辖到aspx。html要设置IIS,在IIS里也有404错误处理,在那里设置转向即可。方法:进去IIS,选中根目录(一般就是计算机名)--->右边窗口(从上到下分ASP.NET,FTP,IIS三大组)--->在IIS里找到”错误页“

#4


#5


1、可以试下通过Request.UrlReferrer能否取到
2、可以查下urlrewrite如何设置html后缀的,然后试验下配置里面是否可以同样配置成html走ISAPI管道

#6


引用 3 楼 From_* 的回复:
问题一,从程序角度,无法获取那个参数id=1,IIS是将那个页面转移到Error页面,原页面被丢弃,至于aspxerrorpath参数,是IIS给你的,所以要想取得那个参数,就的研究IIS了,我测试过,那个参数id=1,在IIS 日志里有

问题二,web.config配置只能管辖到aspx。html要设置IIS,在IIS里也有404错误处理,在那里设置转向即可。方法:进去IIS,选中根目录(一般就是计算机名)--->右边窗口(从上到下分ASP.NET,FTP,IIS三大组)--->在IIS里找到”错误页“

非常感谢