Magento:致命错误:调用成员函数rewrite()

时间:2015-05-25 19:48:56

标签: php magento

我很少遇到这个错误:

  

致命错误:在非对象中调用成员函数rewrite()   /htdocs/public/www/app/code/core/Mage/Core/Controller/Varien/Front.php   在第165行

我已经看过几次问题,但对我而言,它经常发生并且不是一个常数错误。

我在localhost上运行完全相同的站点,并没有遇到任何错误。它发生在几乎任何页面上。我在测试网站时将所有权限重置为777

我已尝试以下方法尝试修复它:

  1. 转到http://www.your-site/downloader并重新安装名为Lib_Varien
  2. 的软件包
  3. 通常清除var
  4. 中的缓存
  5. 任何777
  6. 的权限

    任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:2)

this old Magento Stack Overflow question on the same subject,最可能的原因是陈旧的Magento缓存,和/或 Magento没有对您系统的var文件夹的写入权限,这可能会混淆Magento到哪里可以找到配置的缓存。

由于在单个Stack Overflow答案中推测的原因太多而且多种多样,您的系统要么在配置中找不到类别core/url_rewrite_request,要么无法实例化该模型类。弄清楚原因,你将解决你的问题。

更新:我知道您认为您已经检查了权限---但是再次检查权限,并使用您认为的var检查Magento是否正常。这里的一些调试应该有所帮助

#File: app/code/core/Mage/Core/Model/Config/Options.php
public function getVarDir()
{
    //$dir = $this->getDataSetDefault('var_dir', $this->getBaseDir().DS.'var');
    $dir = isset($this->_data['var_dir']) ? $this->_data['var_dir']
        : $this->_data['base_dir'] . DS . self::VAR_DIRECTORY;
    if (!$this->createDirIfNotExists($dir)) {
        $dir = $this->getSysTmpDir().DS.'magento'.DS.'var';
        if (!$this->createDirIfNotExists($dir)) {
            throw new Mage_Core_Exception('Unable to find writable var_dir');
        }
    }
    return $dir;
}