2010-09-07 67 views
0

我遇到了奇怪当我更改WordPress中默认永久链接时发生的问题。在WordPress中使用非默认永久链接的PHP会话问题

当我将这段代码放入我的主题(或者甚至是WordPress的根index.php文件中)的functions.php文件中,并在几个页面之间导航(例如/ about页面)时,我的计数器经常运行两次。

这个问题在我尝试过的每个服务器上以及任何主题或WordPress安装中都会重现。另一件让我的大脑更加困惑的事情是,它不会出现在Safari,Internet Explorer(6,7 & 8)中,但仅在Firefox中才会出现。我使用的是Firefox 3.6.8,并已在Mac OS X和Windows XP中试用过。

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> 

我很好奇,为什么出现这种情况,是以往任何时候都感谢一个谁可以帮我解决这个问题。

回答

0

我终于找到了什么是问题。

当我有我的头<?php wp_head(); ?>,WordPress的添加此行:

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

此链接prefetched这就是为什么背道而驰两次的原因。调整wp_head();的输出或删除它可以解决问题。

0

如果它增加了两次,这两个请求将进入你的服务器,检查服务器日志,或者安装萤火虫并观察网络标签,这样你就可以确定真正发生了什么,而不是假设它可以做什么是(链接是prefetched,正在请求一个php生成的图像..)。

0

只是一个想法...是否有一个破碎的图像,脚本,CSS(或类似的)路径,开始第二个请求?前一段时间我遇到了这个问题,IE浏览器缓存了结果404,但FF总是重新请求破坏的图像。图像路径被重写到我的索引路径,触发了一个计数器...