“提供非法方案,只允许使用字母数字字符”Magento


"Illegal scheme supplied, only alphanumeric characters are permitted" Magento

大约 2 年后,该网站突然抛出此错误,没有任何代码更改(冲浪时也是如此)。/管理员)。

同一网络空间上的另一个magento站点也有相同的确切问题。

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

可能是某种过载或无法连接到数据库吗?

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

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

非法计划例外来自

#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表中)

另请参阅。