zoukankan      html  css  js  c++  java
  • magento错误: Illegal scheme supplied, only alphanumeric characters are permitted Trace

    先说一下错误提示:

     	
    Exception printing is disabled by default for security reasons.
    Error log record number: XXXXXXXXXXXXXXX
    
     

    这是什么错误呢?这个提示只会给人一头雾水。先把Magento的错误提示打开吧。

    找到:

    /errors/local .xml.sample
    
     

    把这个文件重命名为:local.xml

    然后在网站根目录下建立一个文件目录 tmp ,接着找到

     /lib/Zend/Cache/Backend/File .php
    
     

    查找代码:

    protected $_options = array('cache_dir' => 'null',
    
     

    修改为:

     protected $_options = array (
    'cache_dir' => 'tmp/' ,
    
     

    保存文件,然后刷新网站首页,错误就显示出来了:

     Illegal scheme supplied, only alphanumeric characters are permitted
    Trace:
    #0 /home/artsandc/public_html/app/code/core/Mage/Core/Model/Store.php(712): Zend_Uri::factory(’{{base_url}}’)
    #1 /home/artsandc/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(313): Mage_Core_Model_Store->isCurrentlySecure()
    #2 /home/artsandc/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(161): Mage_Core_Controller_Varien_Front->_checkBaseUrl(Object(Mage_Core_Controller_Request_Http))
    #3 /home/artsandc/public_html/app/code/core/Mage/Core/Model/App.php(349): Mage_Core_Controller_Varien_Front->dispatch()
    #4 /home/artsandc/public_html/app/Mage.php(640): Mage_Core_Model_App->run(Array)
    #5 /home/artsandc/public_html/index.php(80): Mage::run(’’, ‘store’)
    #6 {main}
    
     

    这个错误根据社区的讨论,好像是1.6.0之后的版本出现的。具体可以参考社区论坛的讨论贴:

    http://www.magentocommerce.com/boards/viewthread/263751/

    主要产生的原因:

    问题主要出在:{{base_url}} 这个参数上,如果填入的域名是类似localhost之类域名,中间没有用点号分隔开的话,产生错误的机会极大。而产生错误的文件为 /app/code/core/Mage/Core/Model/Store.php

    在 1.6.0.0的版本中, $secureBaseUrl是一个空值,但是在 1.6.1.0 的版本中则为数据库中的一个值。如果数据库中你有设置‘{{base_url}}’,那么$secureBaseUrl 就会被赋予 ‘{{base_url}}’. 而这个值恰恰会导致函数:

    Zend_Uri::factory( $secureBaseUrl );

    产生错误,然后导致中断退出。

    以下是两种解决方法:

    1、Dan Jones 提供的解决方法:

    dan jones写了一个扩展补丁包,可以下载到网站根目录下,解压即可,下载地址:

    http://www.danneh.org/files/24

    本地:BTS_1610Fix.tar

    2、Jefferson Luís 提供的解决方法 (试过,此方法可行)

    打开:

    ./app/code/core/Mage/Core/Model/Store.php

    找到712行:

    $uri = Zend_Uri::factory( $secureBaseUrl );
    $port = $uri ->getPort();
     

    在这行之前,插入以下代码:

    // this solution is offer by 7ENET.COM TechTeam
    if (false !== strpos ( $secureBaseUrl , '{{base_url}}' )) {
    $secureBaseUrl = Mage::getConfig()->substDistroServerVars( '{{base_url}}' );
    }
    //end of custom code.
     

    加入之后,刷新首页,一起就都正常了。

  • 相关阅读:
    面试再问ThreadLocal,别说你不会
    利用 Docker Compose 搭建 SpringBoot 运行环境(超详细步骤和分析)
    高并发场景下缓存处理的一些思路!
    利用Dockerfile部署SpringBoot项目
    [RH254] 1-运行级别
    [RH134] 12-系统启动
    [安全] HTTPS的理解
    [工具] Wireshark与相关的网络安全
    [Python自学] 爬虫(5)selenium
    [Python自学] 爬虫(4)xpath
  • 原文地址:https://www.cnblogs.com/zhiqixue/p/2693477.html
Copyright © 2011-2022 走看看