【问题标题】:"Illegal scheme supplied, only alphanumeric characters are permitted" Magento“提供的方案非法,只允许使用字母数字字符” Magento
【发布时间】:2014-12-30 14:01:02
【问题描述】:

大约 2 年后,该网站突然抛出此错误而没有任何代码更改(在浏览 ../admin 时也是如此)。

同一个网站空间上的另一个magento网站也有同样的问题。

针对此问题提出的其他解决方案是关于格式错误的 base_url 变量,但此处并非如此。也因为它一直有效,所以这应该不是问题。

会不会是某种过载或者连接数据库失败?

【问题讨论】:

    标签: php magento


    【解决方案1】:

    要解决这个错误,我们应该首先检查的主要事项:

    检查 'core_config_data' 表中的 'web/unsecure/base_url' 和 'web/secure/base_url' 条目,并确保 URL 不应包含任何空格并且应该存在正确的 URL 我们应该检查位于 'app/etc/local.xml' 下的数据库连接字符串,并确保数据库、用户名和密码不应包含非法字符,如 '[' 会破坏 XML。

    【讨论】:

    • 谢谢,但这不是问题所在,因为网站没有任何改变,并且它已经运行了 2 年多,直到一周前出现此错误。
    • 这就是问题所在,不能说你为我节省了多少时间。不得不从一堆笔记中挖掘出我的 SA 密码才能留下 TOS 破坏评论; ) 欢呼
    • 只想说我在使用 Authorize.net 支付选项创建贷项通知单时遇到了这个问题,并且我在配置中的网关 URL 中的 URL 之前有一些空格。删除它解决了这个问题,非常感谢!
    【解决方案2】:

    非法方案异常来自

    #File: lib/Zend/Uri.php
    public static function factory($uri = 'http', $className = null)
    {
        //...
        if (ctype_alnum($scheme) === false) {
            #require_once 'Zend/Uri/Exception.php';
            throw new Zend_Uri_Exception('Illegal scheme supplied, only alphanumeric characters are permitted');
        }
    

    这意味着在您的系统中某处,可能是由于在 System -> Configuration 中设置的值,存在一个带有非字母数字字符集的 URL。

    您可以通过向系统添加一些临时日志记录来识别错误字符串

    public static function factory($uri = 'http', $className = null)
    {
        Mage::Log($uri);
        file_put_contents('/tmp/uri.log',"\n",FILE_APPEND);
    

    然后修复值(可能在core_config_data 表中)

    See also.

    【讨论】:

    • 谢谢,但这不是问题所在,因为网站没有任何改变,并且它已经运行了 2 年多,直到一周前出现此错误。
    • @nauti 至少你可以尝试使用 Alan 给出的代码 sn-p 进行调试。
    • @nauti 好吧,如果该站点正在运行,但现在无法运行,那么您的假设似乎更有可能没有任何更改是不正确的。您的网站可能发生的事情比您想象的要多。 (主机更改 PHP 版本、导致问题的扩展错误等)
    猜你喜欢
    • 2011-12-14
    • 1970-01-01
    • 2015-07-27
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    相关资源
    最近更新 更多