魔扣论坛

魔扣源码论坛业务
查看: 1548|回复: 5

[经验交流] Magento 让产品的URL支持大小写

[复制链接]
  • TA的每日心情
    难过
    21 小时前
  • 签到天数: 2929 天

    [LV.Master]开坛老将

    7万

    主题

    227

    回帖

    27万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    745005
    贡献
    157749
    威望
    32799

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-12-13 18:22:12 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    这近发现,有些站长的口味不一样,能让产品的URL能支持大小写访问。

    如:
    默认地址是:http://www.morko.net/abc.html
    现在要求:http://www.morko.net/ABC.html,也能访问。

    在这种情况下Magento默认是不支持的。那怎么办?

    首先找到: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)))就可以了。

    完整代码:
    1. public function loadByRequestPath(Mage_Core_Model_Url_Rewrite $object, $path)
    2.     {
    3.         if (!is_array($path)) {
    4.             $path = array($path);
    5.         }

    6.         $pathBind = array();
    7.         foreach ($path as $key => $url) {
    8.             $pathBind['path' . $key] = $url;
    9.         }
    10.         // Form select http://www.hicoogle.com
    11.         $adapter = $this->_getReadAdapter();
    12.         $select  = $adapter->select()
    13.             ->from($this->getMainTable())
    14.             ->where('request_path IN (:' . implode(', :', array_flip($pathBind)) . ')')
    15.             ->where('store_id IN(?)', array(Mage_Core_Model_App::ADMIN_STORE_ID, (int)$object->getStoreId()));

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

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

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

    38.         // Finish
    39.         $this->unserializeFields($object);
    40.         $this->_afterLoad($object);

    41.         return $this;
    42.     }
    复制代码

    建议:
    为了以后升级不受影响,建议把这个文件重写一下。把这个文件放到:app/code/local/Mage/Core/Model/Resource/Url/Rewrite.php,效果是一样的。这样防止升级核文件被替换,导致以前修改的功能不能使用。
    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    4

    主题

    265

    回帖

    534

    积分

    高级魔扣

    Rank: 4

    魔扣币
    265
    贡献
    265
    威望
    0
    发表于 2017-1-4 17:32:58 | 显示全部楼层
    给思念自由飞翔的翅膀,给幸福永恒不朽的生命,给生活轻松灿烂的笑容,魔扣源码论坛给朋友快乐永远的祝福寞。

    该用户从未签到

    0

    主题

    249

    回帖

    498

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    249
    贡献
    249
    威望
    0
    发表于 2017-5-21 11:44:28 | 显示全部楼层
    月光很美,比不上朋友的安慰;星星很美,比不上朋友的点缀;夜空很美,比不上友情的珍贵。愿您天天有快乐相伴,夜夜有好梦相随。天气变凉,魔扣源码论坛愿您安康,;愿心情飞扬

    该用户从未签到

    3

    主题

    279

    回帖

    561

    积分

    高级魔扣

    Rank: 4

    魔扣币
    279
    贡献
    279
    威望
    0
    发表于 2017-11-1 18:22:50 来自手机 | 显示全部楼层
    有一种祝福不只是在网上,而是在心里;没曾见面,却在心里留下了一个身影;没有擦肩,却留下了瞬间的感动;不知对方姓甚名谁,却在心上久久停留,淡淡地牵挂、默默地关注魔扣源码论坛、遥遥的祝福;即使一切是短暂的,也将定格成我永恒的回忆,成为我一生中最美丽的风景。让我们互牵友情之温柔的手,齐攀人生的友情之巅吧!来吧,亲爱的伙伴,亲爱的您!让我们共筑博客空间美好梦境!

    该用户从未签到

    3

    主题

    246

    回帖

    495

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    246
    贡献
    246
    威望
    0
    发表于 2018-5-20 13:53:28 | 显示全部楼层
    魔扣源码论坛谢谢朋友的精彩点评!谢谢您一直以来的支持和鼓励!您的每一次点评,哪怕是一个小图、几句短语,都让我激动万分,温暖全身!感谢网络为我们搭建了交流平台,架起一座交友金桥!让我们相识网络、从陌生到熟悉、到相识相知,成为好朋友。愿我们的友谊今世永存!

    该用户从未签到

    1

    主题

    238

    回帖

    477

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    238
    贡献
    238
    威望
    0
    发表于 2019-1-7 23:13:01 来自手机 | 显示全部楼层
    看帖要回,回帖才健康,在踩踩,楼主辛苦了!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表