0

Magentoインストールを新しい専用サーバーに移行すると、次のエラーが発生します

私はMagentoのクローン作成と移行の経験が豊富ですが、ここで何が問題なのか理解できません。

新しいサーバーの互換性を確認しましたが、問題ありません。

このエラーは通常、URIにアンダースコアがある場合にスローされます。別のサブドメインを試しましたが、エラーが発生し続けます。同じサイトを開発サーバーに移行したところ、正常に動作します-何かアイデアはありますか?

Trace:
/home/shushush/public_html/shoponline/magento/lib/Zend/Uri.php(143): Zend_Uri_Http->__construct('http', '//www.shushusho...')
1 /home/shushush/public_html/shoponline/magento/app/code/core/Mage/Core/Model/Store.php(712): Zend_Uri::factory('http://www.shus...')
2 /home/shushush/public_html/shoponline/magento/app/code/core/Mage/Core/Controller/Varien/Front.php(313): Mage_Core_Model_Store->isCurrentlySecure()
3 /home/shushush/public_html/shoponline/magento/app/code/core/Mage/Core/Controller/Varien/Front.php(161): Mage_Core_Controller_Varien_Front->_checkBaseUrl(Object(Mage_Core_Controller_Request_Http))
4 /home/shushush/public_html/shoponline/magento/app/code/core/Mage/Core/Model/App.php(349): Mage_Core_Controller_Varien_Front->dispatch()
5 /home/shushush/public_html/shoponline/magento/app/Mage.php(640): Mage_Core_Model_App->run(Array)
6 /home/shushush/public_html/shoponline/magento/index.php(80): Mage::run('', 'store')
7 {main}
4

2 に答える 2

6

問題は「_」が原因でした。アンダースコアは認識されません。

于 2013-07-17T08:17:10.210 に答える
1

コールスタックを見ると、これが表示されているエラー/例外をトリガーするメソッドであるように見えます

Zend_Uri_Http->__construct

そのファイルのソースにジャンプすると、(エラーテキストを含めなかったので)これはあなたが見ている例外だと思います。

#File: lib/Zend/Uri/Http.php
protected function __construct($scheme, $schemeSpecific = '')
{
    //...
    if ($this->valid() === false) {
        #require_once 'Zend/Uri/Exception.php';
        throw new Zend_Uri_Exception('Invalid URI supplied');
    }
    //...
}

validメソッドの定義を見てみましょう

public function valid()
{
    // Return true if and only if all parts of the URI have passed validation
    return $this->validateUsername()
       and $this->validatePassword()
       and $this->validateHost()
       and $this->validatePort()
       and $this->validatePath()
       and $this->validateQuery()
       and $this->validateFragment();
}

URIが有効かどうかを判断するためにZend/Magentoが呼び出す7つのメソッドを確認できます。これらの1つは失敗しています。どのメソッドがfalseを返しているかを判断するために、一時的なデバッグコードを追加することをお勧めします

public function valid()
{
    var_dump($this->validateUsername());
    var_dump($this->validatePassword());
    var_dump($this->validateHost());
    var_dump($this->validatePort());
    var_dump($this->validatePath());
    var_dump($this->validateQuery());
    var_dump($this->validateFragment());

    // Return true if and only if all parts of the URI have passed validation
    return $this->validateUsername()
       and $this->validatePassword()
       and $this->validateHost()
       and $this->validatePort()
       and $this->validatePath()
       and $this->validateQuery()
       and $this->validateFragment();
}

次に、それがわかったら、falseを返すメソッドの定義を調べて、失敗している文字を特定できます。

于 2012-11-14T18:30:24.747 に答える