Добрый день! Помогите советом! В горизонтальное меню вывел несколько кнопок типа Главная, Контакты, О нас... Туда же хотел вывести "Информацию о доставке", но почему то ссылка идет ввиде "/index.php?route=dostavka" вместо "/dostavka". В нижней части сайта все работает как надо.
версия Opencart 1.5.4.1, SE0 Pack Pr0 5.21. сайт еще на локалке. несколько раз сделал по новой. с ЧПУ и без. все равно та же проблема. единственное это то, что после инсталяции ОС загружаю свой готовый шаблон. может дело в шаблоне, но никак не могу догнать где копать.
Видимо, SE0 Pack чудит. Без ЧПУ должно было бы быть /index.php?route=information/information&information_id=1111111 Либо вы неправильно ссылку сформировали. Как вы эту ссылку выводите и в каком виде вписали?
На денвере ставил опенкарт, ЧПУ не работало. Полез в интернет - у многих была эта проблема. Забил на это, просто залил на хостинг и там уже всё заработало.
Если стандартно, то: 1) у .htaccess убрали расширение ? 2) ЧПУ в категории и товары вписали ? 3) кэш системы чистили ?
все как положено. ссылку через "index.php?route=" выдает только именно для "доставка" в горизонтальном меню. пробовал изменить ссылку, заново по новой создать страницу, из Ocstore перешел на Opencart - все равно также. Удивительно то, что на бэкапе старого сайта все в порядке. Провел сравнение между ними, но вроде все в порядке...
Вы не ответили на мой вопрос. Учитывая, что с остальными ссылками проблем нет, скорее всего, вы неправильно вписали ссылку на эту страницу в шаблон/контроллер шапки (в зависимости от того, как выводили).
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'] = ''; }
Всё как я и думал. Вот так делать нельзя: PHP: $this->data['delivery'] = $this->url->link('dostavka', '', 'SSL'); Вы же видите, что все остальные ссылки содержат не ЧПУ, а путь к контроллеру. Должно быть так: PHP: $this->data['delivery'] = $this->url->link('information/information', 'information_id=111', 'SSL'); Где вместо 111 - id вашей информационной страницы (откройте её редактирование в админке и посмотрите в адресной строке).
Огромное спасибо!!! все замечательно получилось! почему-то раньше на старом сайте работал через ЧПУ. Еще вопрос, помогите пожалуйста: я хочу включить показ товара как в основной категории так и в подкатегории к которому относиться данный товар. В последствии создаются 2 ссылки по которым доступен один и тот же товар. как вылечить? например:
Не могло такого быть. Все ссылки в ОК формируются путём указания пути к контроллеру. Затем система ЧПУ сама при выводе ссылки находит в базе, какой там должен быть ЧПУ и переписывает ссылку для вывода в шаблон. Кстати, я не вижу, чтоб что-то на сайте изменилось с этой ссылкой, она по прежнему выводиться неправильно. Используйте seo_pro. Если у вас оригинальный ОпенКарт (в котором нет seo_pro), вот инструкция (к другой инструкции со ссылкой на неё ): https://wmasteru.ru/threads/сео-чпу-в-opencart-1-5-6-3.18042/#post-138114 Либо можно просто отключить показ категорий в ссылках на товары, вроде, это и в чистом ОК можно, но точно не помню.
seo_pro установлен и работает. а по вашей ссылки на инструкцию мне не удалось загрузить страницу. спасибо за подсказку! изменения внес на локалке и все прекрасно работает. на сайте тоже )