ЧПУ не работает с офф сайта

Тема в разделе "Ошибки и их решения", создана пользователем Алексей, 22 янв 2015.

  1. Алексей

    Алексей Пользователь

    Сообщения:
    39
    Симпатии:
    2
    Для настройки ЧПУ переименовал .htaccess, включил ЧПУ в админке, но страницы главная, корзина и другие не преобразовались. Тогда в файл \catalog\controller\common\seo_url.php подправил код:

    Код:
    }if (isset($data['route'])) {
                    if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/info' || $data['route'] == 'product/product') && $key == 'manufacturer_id') || ($data['route'] == 'information/information' && $key == 'information_id')) {
                            $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");
    
                            if ($query->num_rows && $query->row['keyword']) {
                                    $url .= '/' . $query->row['keyword'];
    
                                    unset($data[$key]);
                            }
                    } elseif ($key == 'path') {
                            $categories = explode('_', $value);
    
                            foreach ($categories as $category) {
                                    $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = 'category_id=" . (int)$category . "'");
    
                                    if ($query->num_rows && $query->row['keyword']) {
                                            $url .= '/' . $query->row['keyword'];
                                    } else {
                                            $url = '';
    
                                            break;
                                    }
                            }
    
                            unset($data[$key]);
                    }else{
                            $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($value) . "'");
                            if (($query->num_rows && $query->row['keyword']) or $value == 'common/home') {
                                    $url .= '/' . $query->row['keyword'];
    
                                    unset($data[$key]);
                            }
    
                    }
            }

    После этого нормальные урлы стали такими http://carmat.by/about_us/about_us, т.е. дублируется алиас. Как это исправить?
     
  2. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.342
    Симпатии:
    702
    @Алексей Необходимо больше информации. Точная версия. Сборка или перевод? И зачем менять код когда по умолчанию у всех все работает?

    Если у вас просто перевод, то все правильно. Сео урлы корзины итд есть только в сборке.
     
  3. Алексей

    Алексей Пользователь

    Сообщения:
    39
    Симпатии:
    2
    Version 2.0.1.1. Opencart брал с офф сайта и потом просто перевод заливал. Ну вот как раз код менял, т.к. не работает)
     
  4. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.342
    Симпатии:
    702
    Все понятно. Как и писал выше, В опенкарте с офф сайта нет того чего вы хотите.
    Возьмите из сборки файл seo_url.php и ссылки станут нормальными. Ну еще придется подредактировать common.js . Тоже возьмите из сборки и увидите в самом начале что изменено.