我的问题是,我的php网站被调用了两次。 但我不知道为什么。在我的访问日志中,如果我重新加载,我还会得到两个条目:
127.0.0.12 - - [13/Oct/2010:20:41:56 +0200] "POST /index.php HTTP/1.1" 200 1493 "http://mkw-testing/index.php" "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.36 Safari/534.7"
127.0.0.12 - - [13/Oct/2010:20:41:57 +0200] "GET /favicon.ico HTTP/1.1" 200 1498 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.36 Safari/534.7"
我的error.log显示:
[Wed Oct 13 21:08:35 2010] [debug] mod_deflate.c(615): [client 127.0.0.12] Zlib: Compressed 2766 to 1067 : URL /index.php
[Wed Oct 13 21:08:35 2010] [debug] mod_deflate.c(615): [client 127.0.0.12] Zlib: Compressed 2743 to 1038 : URL /index.php/favicon.ico
我该怎么办?我没有任何重定向,重新加载aso。在javascript代码中。
thx4help
Cookie可能有问题吗?
我使用htaccess文件来获取该网站只被调用一次?更新
独立访问日志是我的网站显然被调用了两次!! 事实上,如果我打印出一个索引,每次调用增加一个点,显示的网站只显示奇数。所以它是两步而不是一步。增量函数在代码中不会被调用两次。如果我将索引打印到文本文件,我会得到每个数字,而不仅仅是奇数。 ....我不知道该怎么做:-S,在哪里搜索,调试什么......
这里是我的HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<title>Testsuite</title>
<style type="text/css">
...
</style>
</head>
<body>
<!--script type="text/javascript">alert("go home!");</script-->
<p style="font-size: smaller; color: #555">
Testcases ID: 75<br>
Verbleibend: 94.5 % noch zu checken...<br>
</p>
<div id="action">
<h2>Suchprofile</h2>
<p>
Screen number: B01 (4)<br>
Pfad: /search/type<br><br>
</p>
</div>
<h2></h2>
<form name="testsuite" action="/index.php" method="POST">
<p style="width: 650px;">
<span style="color: gray">Ausgangassituation:</span> Der User befindet sich auf der /search/type Seite. <br>
<span style="color: gray">Eingabe:</span> Der User klickt auf ?Dieses Suchprofil speichern?. <br><br>
Reaktionen
<input type="hidden" name="id_testcase" value="75" />
</p>
<table width="650" border="1" cellspacing="0" cellpadding="0" >
<tr>
<td>Es öffnet sich ein Eingabefeld </td>
<td class="checkbox"><input type="checkbox" name="requirements[]" value="103" /></td>
</tr>
<tr>
<td>Rechts neben dem Eingabefeld wird ein Plus-Symbol angezeigt.</td>
<td class="checkbox"><input type="checkbox" name="requirements[]" value="104" /></td>
</tr>
</table>
<br>
<div style="border: 1px dashed #ccc; width: 650px; background-color: #ddd">
<input type="radio" name="action" value="skip" id="skip" /><label for="skip">Ignorieren</label><br>
<input type="radio" name="action" value="store" id="store" checked/><label for="store">Speichern</label><br>
<br>
<center>
<input type="submit" id="submitter" value="weiter" />
</center>
</div>
</form>
</body>
</html>
答案 0 :(得分:7)
您的网站确实被调用了两次,但您的索引页面只调用一次。另一个请求是查找favicon.ico,即您的浏览器将在您的页面所在的标签/窗口中显示的图标。
编辑: @ TokenMacGuy下面的评论可能是正确的。
答案 1 :(得分:4)
这是Chrome众所周知的怪癖之一。它在每个页面调用上重新请求favicon.ico(甚至查看源代码!)其他浏览器缓存它。没什么需要关注的。只需确保文件存在就可以避免404开销! - 来自@chigley
<强>更新强>
在考虑了 404问题之后,我找到了另一个解决方案。
将此行添加到.htaccess
文件中:
RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC]
OLD和DEPRECATED
hm能够在这个帖子中接受答案......我找到了一种相对简单的方法来对这个请求做出反应...... 但仅适用于testreason
我把它放在索引文件的第一个php行中:
if($_SERVER['REQUEST_URI'] == "/favicon.ico") return false;
即使favicon.ico存在,这也可以帮助您避免错误日志文件中的双重条目。它使它更具可读性。
你必须知道我正在使用这样的.htaccess
文件:
Options +FollowSymLinks
IndexIgnore */*
# Turn on the RewriteEngine
RewriteEngine On
RewriteBase /
# Rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/favicon\.ico [NC]
RewriteRule . index.php
答案 2 :(得分:3)
这是完全正常的,因为第二次调用是为了检索favicon,这是一个小图标,通常出现在浏览器的标签上。即使你没有它,浏览器也会尝试获取它。
答案 3 :(得分:2)
原因,为什么我的index.php加载,两次是另一个(所以不是favicon):在我的.htaccess我有我的
ErrorDocument 404
文件末尾的命令。将放在
之前RewriteEngine On
做了这个伎俩。
helle的回答让我想到了另一个有用的(非常简单的)想法:找出哪个请求调用了你的index.php,只需将以下内容放在它的开头:
file_put_contents('stats/stats.txt', $_SERVER['REQUEST_URI'], FILE_APPEND);
答案 4 :(得分:0)
第二个调用是浏览器尝试获取收藏夹图标(favicon.ico)。显然你有一个,因为你的服务器返回状态200,所以没问题。