не работает ссылка на страницу

Тема в разделе "OpenCart", создана пользователем sovvase, 16 июл 2015.

  1. sovvase

    sovvase

    Регистрация:
    28 окт 2012
    Сообщения:
    66
    Симпатии:
    0
    Добрый день! Помогите советом! В горизонтальное меню вывел несколько кнопок типа Главная, Контакты, О нас... Туда же хотел вывести "Информацию о доставке", но почему то ссылка идет ввиде "/index.php?route=dostavka" вместо "/dostavka". В нижней части сайта все работает как надо.
     
  2. Vivec

    Vivec

    Регистрация:
    24 ноя 2014
    Сообщения:
    105
    Симпатии:
    15
    Нехватает инфы о версиях и чем чпу делаете. Можно и ссылку в спойлер
     
  3. sovvase

    sovvase

    Регистрация:
    28 окт 2012
    Сообщения:
    66
    Симпатии:
    0
    версия Opencart 1.5.4.1, SE0 Pack Pr0 5.21. сайт еще на локалке. несколько раз сделал по новой. с ЧПУ и без. все равно та же проблема. единственное это то, что после инсталяции ОС загружаю свой готовый шаблон. может дело в шаблоне, но никак не могу догнать где копать.
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Видимо, SE0 Pack чудит. Без ЧПУ должно было бы быть /index.php?route=information/information&information_id=1111111
    Либо вы неправильно ссылку сформировали. Как вы эту ссылку выводите и в каком виде вписали?
     
  5. sovvase

    sovvase

    Регистрация:
    28 окт 2012
    Сообщения:
    66
    Симпатии:
    0
    думаю будет проще если я выложу сайт в сеть. днем скину ссылку
     
  6. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    412
    Симпатии:
    159
    На денвере ставил опенкарт, ЧПУ не работало. Полез в интернет - у многих была эта проблема. Забил на это, просто залил на хостинг и там уже всё заработало.
     
  7. sovvase

    sovvase

    Регистрация:
    28 окт 2012
    Сообщения:
    66
    Симпатии:
    0
    залил на хостинг, сгенерировал ЧПУ по новой, проблема сохранилась.
     
  8. skiv14

    skiv14

    Регистрация:
    9 июн 2015
    Сообщения:
    412
    Симпатии:
    159
    Если стандартно, то:
    1) у .htaccess убрали расширение ?
    2) ЧПУ в категории и товары вписали ?
    3) кэш системы чистили ?
     
  9. sovvase

    sovvase

    Регистрация:
    28 окт 2012
    Сообщения:
    66
    Симпатии:
    0
    все как положено. ссылку через "index.php?route=" выдает только именно для "доставка" в горизонтальном меню. пробовал изменить ссылку, заново по новой создать страницу, из Ocstore перешел на Opencart - все равно также. Удивительно то, что на бэкапе старого сайта все в порядке. Провел сравнение между ними, но вроде все в порядке...
     
  10. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Вы не ответили на мой вопрос.
    Учитывая, что с остальными ссылками проблем нет, скорее всего, вы неправильно вписали ссылку на эту страницу в шаблон/контроллер шапки (в зависимости от того, как выводили).
     
  11. sovvase

    sovvase

    Регистрация:
    28 окт 2012
    Сообщения:
    66
    Симпатии:
    0
    catalog\view\theme\...\template\common\header.tpl

    Код:
    <div id="menu">
        <ul>
        <li><a href="<?php echo $home; ?>"><?php echo $text_home; ?></a></li>
        <li><a href="<?php echo $special; ?>"><?php echo $text_special; ?></a></li>
        <li><a href="<?php echo $delivery; ?>"><?php echo $text_info_delivery; ?></a></li>
        <li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li>
        </ul>
    </div>
    catalog\controller\common\header.php

    Код:
    // Whos Online
            if ($this->config->get('config_customer_online')) {
                $this->load->model('tool/online');
       
                if (isset($this->request->server['REMOTE_ADDR'])) {
                    $ip = $this->request->server['REMOTE_ADDR'];   
                } else {
                    $ip = '';
                }
               
                if (isset($this->request->server['HTTP_HOST']) && isset($this->request->server['REQUEST_URI'])) {
                    $url = 'http://' . $this->request->server['HTTP_HOST'] . $this->request->server['REQUEST_URI'];   
                } else {
                    $url = '';
                }
               
                if (isset($this->request->server['HTTP_REFERER'])) {
                    $referer = $this->request->server['HTTP_REFERER'];   
                } else {
                    $referer = '';
                }
                           
                $this->model_tool_online->whosonline($ip, $this->customer->getId(), $url, $referer);
            }
                   
            $this->language->load('common/header');
           
            if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
                $server = HTTPS_IMAGE;
            } else {
                $server = HTTP_IMAGE;
            }   
                   
            if ($this->config->get('config_icon') && file_exists(DIR_IMAGE . $this->config->get('config_icon'))) {
                $this->data['icon'] = $server . $this->config->get('config_icon');
            } else {
                $this->data['icon'] = '';
            }
           
            $this->data['name'] = $this->config->get('config_name');
                   
            if ($this->config->get('config_logo') && file_exists(DIR_IMAGE . $this->config->get('config_logo'))) {
                $this->data['logo'] = $server . $this->config->get('config_logo');
            } else {
                $this->data['logo'] = '';
            }
           
            $this->data['text_home'] = $this->language->get('text_home');
            $this->data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
            $this->data['text_shopping_cart'] = $this->language->get('text_shopping_cart');
            $this->data['text_search'] = $this->language->get('text_search');
            $this->data['text_welcome'] = sprintf($this->language->get('text_welcome'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'));
            $this->data['text_logged'] = sprintf($this->language->get('text_logged'), $this->url->link('account/account', '', 'SSL'), $this->customer->getFirstName(), $this->url->link('account/logout', '', 'SSL'));
            $this->data['text_account'] = $this->language->get('text_account');
            $this->data['text_checkout'] = $this->language->get('text_checkout');
            $this->data['text_contact'] = $this->language->get('text_contact');
            $this->data['text_special'] = $this->language->get('text_special');
            $this->data['text_info_delivery'] = $this->language->get('text_info_delivery');
                   
            $this->data['home'] = $this->url->link('common/home');
            $this->data['wishlist'] = $this->url->link('account/wishlist', '', 'SSL');
            $this->data['logged'] = $this->customer->isLogged();
            $this->data['account'] = $this->url->link('account/account', '', 'SSL');
            $this->data['shopping_cart'] = $this->url->link('checkout/cart');
            $this->data['checkout'] = $this->url->link('checkout/checkout', '', 'SSL');
            $this->data['contact'] = $this->url->link('information/contact', '', 'SSL');
            $this->data['special'] = $this->url->link('product/special', '', 'SSL');
            $this->data['delivery'] = $this->url->link('dostavka', '', 'SSL');
           
            if (isset($this->request->get['filter_name'])) {
                $this->data['filter_name'] = $this->request->get['filter_name'];
            } else {
                $this->data['filter_name'] = '';
            }
     
  12. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Всё как я и думал.
    Вот так делать нельзя:
    PHP:
    $this->data['delivery'] = $this->url->link('dostavka''''SSL');
    Вы же видите, что все остальные ссылки содержат не ЧПУ, а путь к контроллеру.

    Должно быть так:
    PHP:
    $this->data['delivery'] = $this->url->link('information/information''information_id=111''SSL');
    Где вместо 111 - id вашей информационной страницы (откройте её редактирование в админке и посмотрите в адресной строке).
     
    sovvase нравится это.
  13. sovvase

    sovvase

    Регистрация:
    28 окт 2012
    Сообщения:
    66
    Симпатии:
    0
    Огромное спасибо!!! все замечательно получилось! почему-то раньше на старом сайте работал через ЧПУ.
    Еще вопрос, помогите пожалуйста: я хочу включить показ товара как в основной категории так и в подкатегории к которому относиться данный товар. В последствии создаются 2 ссылки по которым доступен один и тот же товар. как вылечить?
    например:

     
  14. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    778
    Не могло такого быть. Все ссылки в ОК формируются путём указания пути к контроллеру. Затем система ЧПУ сама при выводе ссылки находит в базе, какой там должен быть ЧПУ и переписывает ссылку для вывода в шаблон.

    Кстати, я не вижу, чтоб что-то на сайте изменилось с этой ссылкой, она по прежнему выводиться неправильно.

    Используйте seo_pro. Если у вас оригинальный ОпенКарт (в котором нет seo_pro), вот инструкция (к другой инструкции со ссылкой на неё :Smile: ): https://wmasteru.ru/threads/сео-чпу-в-opencart-1-5-6-3.18042/#post-138114

    Либо можно просто отключить показ категорий в ссылках на товары, вроде, это и в чистом ОК можно, но точно не помню.
     
    sovvase нравится это.
  15. sovvase

    sovvase

    Регистрация:
    28 окт 2012
    Сообщения:
    66
    Симпатии:
    0
    seo_pro установлен и работает. а по вашей ссылки на инструкцию мне не удалось загрузить страницу.
    спасибо за подсказку! изменения внес на локалке и все прекрасно работает. на сайте тоже )