开发者社区> 问答> 正文

关于apache,nginx 对于 favicon.ico 的处理 请求报错 

 困扰我一天时间的BUG 好像就是由于 apache/nginx 在执行完相应的URL处理后,会在脚本末尾再执行一次 寻址favicon.ico 。

这是我对程序路由器分析 的来的。 
这个东西我当时就觉得奇怪了。我在路由器层中做了判断。如果用户的url参数少于2,就加载首页。
如: /index.php/shop-list ,这样会加载shop控制器。如果输入的是  /index.php/shop 则系统加载缺省值(即首页的参数)
然后呢,直到刚才才发现, apache和nginx在 脚本执行完之后,会偷偷的执行一次找 favicon.ico 图标。
这时候请求的url就是 http://hongshu.com/favicon.ico .

正因为 这玩意偷偷的 去找这个图标了,导致程序多执行一次 缺省值的 控制器!!!
当时我就奇怪了,为什么我的缺省值控制器老是被执行多一次(而且当时调试发现,正常URL的才显示内容,favicon的不会有内容显示,只将调试的数据存于session才有内容出来)。。
刚开始,我以为是 构造函数 中php向后兼容问题(类和方法同名,方法成为构造函数)。但我的程序都是命名空间的。...

废话了这么多,我想问的是,请求去找 favicon图标的,是 apache/nginx 引起的吗?还是浏览器呢?我现在测试发现 chrome和 火狐都 一样。求指点。

展开
收起
kun坤 2020-06-01 10:09:40 1190 0
1 条回答
写回答
取消 提交回答
  • 浏览器干的,web服务器才没这么无聊。
    再说,你的web服务器的rewrite配置也太弱了吧。rewrite的时候,就应该排除特定后缀的重写
    比如:

    if ($request_filename !~ (js|css|images|imgs|ico|robots.txt|index.php)){ rewrite ^/(.+)$ /index.php/$1 last; }

    ######感谢了!rewrite规则确实不严格。仅仅只写了 index.php###### 浏览器自动加载的! 就是你页面卡片那个图标。 浏览器一般自动在网站根目录寻找,就是一个小图片,ngnix or apache 做个规则处理,不需要当成脚本处理! ######感谢了

    ===============================

    无法安装magento1.9.1.0 400 请求报错 

    今天整合了同事的代码,结果magento不能安装了,之前也整合过,没有问题的。
    出错Fatal error: Call to a member function getCode() on a non-object in D:\software\wamp\www\magento1.9.1.0\app\code\core\Mage\Customer\Model\Session.php on line 71

    不知道有没有人也出现过同样的问题,请各位大神帮帮忙看看。

    --- 把包发我, 我来修复. ######回复 @voov : 嗯嗯######回复 @NicholasNC : magento机密?######谢谢你,不过这是公司的机密,不能外泄。 我发现只是不能运行install的代码,只要不安装,就没问题了。 不知道是否知道大致的问题方向是什么?为什么会出现这种状况。

    2020-06-01 11:29:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Flink技术进阶 立即下载
Apache Spark: Cloud and On-Prem 立即下载
Hybrid Cloud and Apache Spark 立即下载

相关镜像