亲爱的朋友们,我已经在现有网站上安装了prestashop。我当前的网站有一个我已经建立的登录系统。
由于为我的系统安装了prestashop,我想把现有的登录名改为prestashop登录。
至于prestashop文档,要在prestashop之外访问prestashop cookie,我创建了一个测试页面来检索cookie数据,如下所示,
include_once('path_to_prestashop/config/config.inc.php');
include_once('path_to_prestashop/config/settings.inc.php');
include_once('path_to_prestashop/classes/Cookie.php');
$cookie = new Cookie('ps');
print_r($cookie);
但这不起作用,浏览器说
它包含重定向循环。
我尝试停用SEO friendly url
和cannonical url to no-direct
,因为有些帖子建议。
现在,如果我转到测试页面,它会重定向到prestashop索引页面,而不是显示cookie数据。
我该怎么做才能解决这个问题?
谢谢。
答案 0 :(得分:3)
当您将config/config.inc.php
PrestaShop重定向包含到商店域名时。
以下代码导致classes/shop/Shop.php
中的此行为:
$shop = new Shop($id_shop);
if (!Validate::isLoadedObject($shop) || !$shop->active)
{
// No shop found ... too bad, let's redirect to default shop
$default_shop = new Shop(Configuration::get('PS_SHOP_DEFAULT'));
// Hmm there is something really bad in your Prestashop !
if (!Validate::isLoadedObject($default_shop))
throw new PrestaShopException('Shop not found');
$params = $_GET;
unset($params['id_shop']);
$url = $default_shop->domain;
if (!Configuration::get('PS_REWRITING_SETTINGS'))
$url .= $default_shop->getBaseURI().'index.php?'.http_build_query($params);
else
{
// Catch url with subdomain "www"
if (strpos($url, 'www.') === 0 && 'www.'.$_SERVER['HTTP_HOST'] === $url || $_SERVER['HTTP_HOST'] === 'www.'.$url)
$url .= $_SERVER['REQUEST_URI'];
else
$url .= $default_shop->getBaseURI();
if (count($params))
$url .= '?'.http_build_query($params);
}
$redirect_type = Configuration::get('PS_CANONICAL_REDIRECT') == 2 ? '301' : '302';
header('HTTP/1.0 '.$redirect_type.' Moved');
header('location: http://'.$url);
exit;
}
您可以覆盖Shop
类以禁用脚本的重定向。
要执行此操作,请首先定义PS_DISABLE_SHOP_REDIRECT
常量,然后再添加config/config.inc.php
:
define('PS_DISABLE_SHOP_REDIRECT', true);
然后将以下代码粘贴到重写类之前:
if (defined('PS_DISABLE_SHOP_REDIRECT')) {
$id_shop = Configuration::get('PS_SHOP_DEFAULT');
}