1

我已经建立了一个站点,该站点为他们服务的每个区域都有一个主页。在 Chrome 和 Safari 中,如果您转到服务区域选项卡并选择一个服务区域,您将被带到该区域的主页。

此时开始一个会话来存储用户选择的区域,如果他们访问网站上的另一个页面,它现在会在该选定位置的标题中显示一个特定于位置的广告,或者如果他们选择家,它会将他们重定向到他们选择的区域家页。

Firefox 中的问题是,如果您选择一个服务区域并被带到该区域的主页,然后从菜单中选择不同的页面,则设置的服务区域会更改为不同的区域。仅当将自定义主页离开到不同的菜单页面时才会发生这种情况。

这是设置会话的代码:

session_start();

$cur_url = dd_cur_page_url();

if ('local_home_pages' == get_post_type() && $cur_url != $_SESSION['dd_location']['home']) {
    $cur_url_mod = str_replace('carpet-cleaning_', '', $cur_url);
    $url_parts = explode('/', $cur_url_mod);
    $url_parts_count = count($url_parts);
    $cur_page = $url_parts[$url_parts_count - 2];
    $location_parts = explode('_', $cur_page);
    $place = trim(str_replace('-', ' ', $location_parts[0]));
    $state = trim(str_replace('-', ' ', substr($location_parts[1], 2)));
    $state_parts = explode('-', $location_parts[1]);
    $state_abv = trim($state_parts[0]);
    $county = trim(str_replace('-', ' ', $location_parts[2]));
    $_SESSION['dd_location'] = array(
            'home' => $cur_url,
            'place' => $place,
            'state' => $state,
            'state_abv' => $state_abv,
            'county' => $county);
}

这是仅在通用主页上运行的重定向代码:

session_start();

$cur_url = dd_cur_page_url();

if (is_front_page() && isset($_SESSION['dd_location']['home'])) {
    $location = $_SESSION['dd_location']['home'];
    header('Location:' . $location);
}
4

1 回答 1

1

在用 firebug 进行一些调试后,我发现了问题。它在 Firefox 的预取中。我将以下内容添加到我的 .htaccess 文件中,现在一切正常。

RewriteEngine on
RewriteCond %{HTTP:X-moz} prefetch
RewriteRule . . [F,L] 

我会写一篇关于这个问题的帖子,讲述我是如何发现它的,如何解决它,以及为什么它会在接下来的几天内出现在我的网站http://www.dominant-domains.com上,供像我一样的人使用并且想要的不仅仅是修复。

感谢社区的建议。这是我第一次来这里,很愉快!干杯

于 2013-10-15T12:39:28.963 回答