代码之家  ›  专栏  ›  技术社区  ›  Fred Bergman

使用非默认永久链接的WordPress中的PHP会话出现问题

  •  0
  • Fred Bergman  · 技术社区  · 16 年前

    奇怪的 在WordPress中更改默认永久链接时发生的问题。

    当我把这个代码放到我的函数.php在我的主题(甚至在根目录)中索引.php我的计数器经常运行两次。

    仅在Firefox中

    session_start();
    
    $counter = $_SESSION['wp_action_counter'];
    
    if( !isset($counter) ){
    $counter = 0;
    }
    
    $counter++;
    
    echo $counter;
    
    $_SESSION['wp_action_counter'] = $counter;
    

    我的.htaccess规则是这样的

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    

    我很好奇为什么会发生这样的事,我一直很感激能帮我解决这个问题的人。

    4 回复  |  直到 16 年前
        1
  •  0
  •   aularon    16 年前

    如果它增加两次,这两个请求将发送到您的服务器,检查服务器日志,或者安装firebug并查看net选项卡,这样您就可以确定到底发生了什么,而不是假设它可能是什么(一个链接是 prefetched ,正在请求php生成的图像..)。

        2
  •  0
  •   hacksteak25    16 年前

    只是个主意。。。是否有一个中断的图像、脚本、css(或类似的)路径启动第二个请求?我有这个问题一段时间前,IE缓存结果404,但FF总是重新请求损坏的图像。图像路径被重写为我的索引路径,触发了计数器。。。

        3
  •  0
  •   Fred Bergman    16 年前

    当我有 <?php wp_head(); ?> 在我的标题中,WordPress添加了以下行:

    <link rel='next' title='About' href='http://mysite.dev/about/' />
    

    prefetched 这就是计数器运行两次的原因。调整输出 wp_head();

    推荐文章