编程语言
首页 > 编程语言> > javascript-PHP应用程序上出现无法解释的404错误

javascript-PHP应用程序上出现无法解释的404错误

作者:互联网

在自定义PHP框架上,我实现了一个邮件类,让我知道何时发生404.它向我发送url,引荐来源网址和UA字符串.

我收到两种类型的无法解释的404报告,这些报告未链接到网站上的任何地方.这经常发生.我已经测试了报告所来自的确切浏览器版本.我找不到任何错误,无论是在html中还是在javascript中.这些页面通常仅包含少量javascript btw.

Type1示例:

source: http://www.example.com/articles/example-article
target (404): http://www.example.com/articles/undefined
User agents who have reported this:
- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
(Chrome 30.0.1599.101 on win7)
- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; BOIE9;ENUSMSE)
(IE9 on win vista)
- Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0;WUID=78780BB80C56415F887179239977F107;WTB=6581)
(IE10 on win 8)

Type2示例:

source: http://www.example.com/articles/example-article
target (404): http://www.example.com/articles
User agents who have reported this:
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E)
(IE8 on win7)
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1; .NET CLR 1.1.4325; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30707; MS-RTC LM 8)
(IE7 on windows server 2003)
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.5; .NET CLR 1.1.4322 ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
(IE8 on winXP)
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB7.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; .NET C LR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C; HYVES)
(IE8 on win vista)

有人可以帮我解释一下吗?可能是Windows浏览器插件有问题,可能是原因所在吗?我没有看到在Windows之外的其他操作系统上发生任何这些报告.尽管这些站点的确也从其他操作系统获得了大量访问.

干杯!

编辑#1
我用useragentstring.com来解释UA字符串

编辑#2
Palec,Fabio Beltramini和Artur的回答帮助我进一步了解了这个问题,我认为他们都做出了很大贡献.由于我只能接受/奖励一个答案,因此我选择接受Palec的答案,因为他首先回答了.非常感谢大家的思考.如果在调试期间遇到任何值得注意的事情,我将在此处添加.

解决方法:

可能的解释是:

>破碎的JS代码,很难触发
>损坏的浏览器插件
>空链接目标(< a href =“”>)
>出于某种原因尝试奇怪网址的机器人

URL中未定义是JavaScript损坏的典型标志.不必要地引用包含当前文档的(逻辑)文件夹通常是由IE臭名昭著的错误引起的-它将空路径解释为不是当前文档,而是解释为. (包含文件夹),因此空链接目标在IE和其他浏览器中的工作方式有所不同.与Bot相关的错误本身就是一个故事–我只能补充说,它们组成请求的路径和引荐来源并不少见.

两个堆栈溢出问题支持我关于损坏的插件的猜想:

> “undefined” randomly appended in 1% of requested urls on my website since 12 june 2012
> “undefined” and “cache/xxx” appened to URLs

IE的空白href错误(链接到此处的官方资源)的详细信息:

> now accepted answer to Empty HTML href leads to directory listing in IE

标签:apache,user-agent,http-status-code-404,javascript,php
来源: https://codeday.me/bug/20191030/1966658.html