网站被叫两次?

时间:2010-10-13 18:47:37

标签: php google-chrome

我的问题是,我的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 &ouml;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>

5 个答案:

答案 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,所以没问题。