Magento URL不区分大小写

首先找到:app/code/core/Mage/Core/Model/Resource/Url/Rewrite.php,

这个文件的public function loadByRequestPath(Mage_Core_Model_Url_Rewrite $object, $path)方法,大概在134行。
修改这个方法里面的一行代码就可以了。

在158行的样子,找到:if (!array_key_exists($item['request_path'], $mapPenalty))改成

if (!array_key_exists(strtolower($item['request_path']), array_change_key_case($mapPenalty)))就可以了。

完整代码:

public function loadByRequestPath(Mage_Core_Model_Url_Rewrite $object, $path)
{
    if (!is_array($path)) {
        $path = array($path);
    }

    $pathBind = array();
    foreach ($path as $key => $url) {
        $pathBind['path' . $key] = $url;
    }
   
    $adapter = $this->_getReadAdapter();
    $select  = $adapter->select()
        ->from($this->getMainTable())
        ->where('request_path IN (:' . implode(', :', array_flip($pathBind)) . ')')
        ->where('store_id IN(?)', array(Mage_Core_Model_App::ADMIN_STORE_ID, (int)$object->getStoreId()));

    $items = $adapter->fetchAll($select, $pathBind);

    // Go through all found records and choose one with lowest penalty - earlier path in array, concrete store
    $mapPenalty = array_flip(array_values($path)); // we got mapping array(path => index), lower index - better
    $currentPenalty = null;
    $foundItem = null;
    foreach ($items as $item) {
        if (!array_key_exists(strtolower($item['request_path']), array_change_key_case($mapPenalty))) {             //修改这里就可以了。
            continue;
        }
        $penalty = $mapPenalty[$item['request_path']] << 1 + ($item['store_id'] ? 0 : 1);
        if (!$foundItem || $currentPenalty > $penalty) {
            $foundItem = $item;
            $currentPenalty = $penalty;
            if (!$currentPenalty) {
                break; // Found best matching item with zero penalty, no reason to continue
            }
        }
    }

    // Set data and finish loading http://www.hicoogle.com/magento-rang-chan-pin-di-url-zhi-chi-da-xiao-xie.html
    if ($foundItem) {
        $object->setData($foundItem);
    }

    // Finish
    $this->unserializeFields($object);
    $this->_afterLoad($object);

    return $this;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值