我的网站上有favicon.ico
。
在HTML中,我链接到它的位置......
<link rel="icon" href="/assets/images/layout/favicon.ico" type="image/x-icon" />
我的.htaccess
也有。
# Redirect /favicon.ico requests
RewriteCond %{REQUEST_URI} !^assets/images/layout/favicon\.ico [NC]
RewriteCond %{REQUEST_URI} ^favicon\.(gif|ico|png|jpe?g)$ [NC]
RewriteRule ^(.*)$ assets/images/layout/favicon.ico [R=301,L]
...将/favicon.ico
次请求重定向到其他位置。
出于某种原因,每次我在浏览器中请求favicon.ico
时,即使{{1} 304 Not Modified
,我也会得到/assets/images/layout/favicon.ico
响应,其中匹配的Etags和显然是一个空白图片确实存在。
尝试访问完整路径时会遇到同样的问题。
这里发生了什么?导致此304
的原因是什么?
答案 0 :(得分:2)
首先,我宁愿把这条规则放在.htaccess中:
RewriteRule ^favicon\.(gif|ico|png|jpe?g)$ /assets/images/layout/favicon.ico [L,NC]
然后,如果您的网页中有此内容:
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
/favicon.ico
将内部重定向到/assets/images/layout/favicon.ico
我已经在IE,Firefox和Chrome中对此进行了测试,并且所有3个都显示了这种行为,这是第一次(或清除缓存后)我获得了favicon.ico的200
,但之后所有浏览器都缓存了这个图标文件,不要费心向服务器发送另一个请求。通过此设置,我在测试中未发现任何304
。
<强>铬强>
127.0.0.1 - - [05/May/2011:23:58:15 -0400] "GET /favicon.ico HTTP/1.1" 200 1150 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.24 (KHTML, like Geck
o) Chrome/11.0.696.60 Safari/534.24"
<强> IE 强>
127.0.0.1 - - [06/May/2011:00:05:18 -0400] "GET /favicon.ico HTTP/1.1" 200 1150 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .
NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
<强>火狐强>
127.0.0.1 - - [06/May/2011:00:07:33 -0400] "GET /favicon.ico HTTP/1.1" 200 1150 "-" "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"
答案 1 :(得分:0)
String html = ... // your html text
String number = String.Empty; // default value if not found
Match m = Regex.Match(html, @"<span class\=""vi-buybox-watchcount"">([0-9]+?)<\/span>");
if (m.Success)
number = m.Groups[1].Value;