Как убрать ссылку /index.php?route=common/home?

Antik

Прохожий
Пользователь
Регистрация
15/4/14
Сообщения
10
Симпатии
0
Возраст
22
#1
Когда нажимаешь на логотип в Интернет магазине на Opencart, то переход осуществляется на адрес site.ua//index.php?route=common/home, а должно перенаправлять на главную страницу. Как это исправить? В Интернете, есть решения, но ни одно мне не подходит. Возможно, что-то не так делаю.
 

WebBiz

Вождь
Член команды
Администратор
Регистрация
11/3/14
Сообщения
1.314
Симпатии
178
Возраст
27
#2
Тоже сталкивался с подобной проблемой и как у вас ничего не получалось. Нашел такое решение:
У файле "url.php" (system/library/url.php):
после строчки:
PHP:
if ($args) { $url .= str_replace('&', '&', '&' . ltrim($args, '&')); }
(приблизительно 29 строка)
вставляем:
PHP:
else { if($route == 'common/home') { if($connection == 'NONSSL') { return HTTP_SERVER; } else { return HTTPS_SERVER; } } }
 

WebBiz

Вождь
Член команды
Администратор
Регистрация
11/3/14
Сообщения
1.314
Симпатии
178
Возраст
27
#3
А какой способ Вам помог, в решении данной проблемы?
 

Edi

Новичек
Пользователь
Регистрация
22/3/14
Сообщения
25
Симпатии
1
Возраст
37
#4
А мне помог следующий способ:
У файле /system/library/url.php
Находи строчку:
PHP:
$url .= 'index.php?route=' . $route;
После нее вставляем:
PHP:
if ($args) {
if($route == 'common/home') {
if($connection == 'NONSSL') {
$url = HTTP_SERVER.str_replace('&', '&', '?' . ltrim($args, '&'));
return $url;
} else {
$url = HTTPS_SERVER.str_replace('&', '&', '?' . ltrim($args, '&'));
return $url;
}
} else {
$url .= str_replace('&', '&', '&' . ltrim($args, '&'));
}
} else {
if($route == 'common/home') {
if($connection == 'NONSSL') { return HTTP_SERVER; }
else { return HTTPS_SERVER; }}}
return $this->rewrite($url);
 

Яна

Любопытный
Пользователь
Регистрация
28/7/14
Сообщения
54
Симпатии
0
Возраст
39
#5
Тоже сталкивался с подобной проблемой и как у вас ничего не получалось. Нашел такое решение:
У файле "url.php" (system/library/url.php):
после строчки:
PHP:
if ($args) { $url .= str_replace('&', '&', '&' . ltrim($args, '&')); }
(приблизительно 29 строка)
вставляем:
PHP:
else { if($route == 'common/home') { if($connection == 'NONSSL') { return HTTP_SERVER; } else { return HTTPS_SERVER; } } }
вставила такую строчку, но не могу понять, помогло мне или нет:)
Проверьте, пожалуйста
 

WebBiz

Вождь
Член команды
Администратор
Регистрация
11/3/14
Сообщения
1.314
Симпатии
178
Возраст
27
#6

WebBiz

Вождь
Член команды
Администратор
Регистрация
11/3/14
Сообщения
1.314
Симпатии
178
Возраст
27
#7
Я работаю с маленьким интернет магазином и впервые решить эту проблему мне удалось тем способом, который я указал у сообщении, которое в начале темы. Но не так давно я перевел магазин на работу по SSL протоколу и эта проблема - снова появилась, но только при клике на логотип. В этот раз помог способ Edi. Спасибо тебе!
 

BlackMan

Прохожий
Пользователь
Регистрация
26/9/14
Сообщения
27
Симпатии
0
Возраст
33
#8
Ссылку типа: site.ua/index.php?route=common/home, при нажатии на логотип, удалось убрать способом, который написал WebBiz. Но при нажатии на кнопку "главная" - никак не удается убрать вот это: ?route=common/home. Кто знает, как решить эту проблему?[DOUBLEPOST=1411723406,1411722412][/DOUBLEPOST]Удалось решить проблему. У файле:
PHP:
/system/library/response.php
Нужно добавить у функцию:
PHP:
public function output() {
вот этот код:
PHP:
if (!defined('HTTP_CATALOG')) $this->output = str_replace('?route=common/home', '', $this->output);
В итоге функция должна выглядеть так:
PHP:
public function output() {
      if (!defined('HTTP_CATALOG')) $this->output = str_replace('?route=common/home', '', $this->output);
        if ($this->output) {
            if ($this->level) {
                $ouput = $this->compress($this->output, $this->level);
            } else {
                $ouput = $this->output;
            }  
            if (!headers_sent()) {
                foreach ($this->headers as $header) {
                    header($header, true);
                }
            }
            echo $ouput;
        }
    }