Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Неправильные относительные пути


Recommended Posts

Здравствуйте.

Магазин работал пол года без проблем, но что то произошло за последние 1-2 недели.

В категориях второго уровня типа /категория/подкатегория и во всех товарах типа /категория/товар относительные пути к изображениям стилям и js. Всегда так было и во всех магазинах opencart так.

Но в один прекрасный день все ресурсы перестали загружаться. htaccess проверил, он стандартный.

Вручную переделал все пути к файлам. Было catalog/view/javascript/jquery/magnific/magnific-popup.css стало /catalog/view/javascript/jquery/magnific/magnific-popup.css

Но невозможно добавить товар в корзину и т.д., так как POST запросы отправляются по неправильному пути. Надо на index.php, а отправляется на категория/index.php

 

К примеру

Не работает https://открытки-ежика.рф/животные/dreamy-cat

Работает https://открытки-ежика.рф/dreamy-cat

Есть вариант, что хостер что то поменял в настройках, но вдруг вы знаете как решить проблему.

Надіслати
Поділитися на інших сайтах

9 минут назад, markimax сказал:

Что за модули устанавливали ?

За последние месяцы вообще никакие модули и файлы не трогались. Всё само работало и само перестало работать.

Если вы об этом, то нет. Его модулей нет.

На этой странице https://открытки-ежика.рф/животные/dreamy-cat путь к изображению не правильный, а тут https://открытки-ежика.рф/dreamy-cat правильный.

Но раньше работало ведь. И у всех на opencart такие пути к файлам не правильные.

Надіслати
Поділитися на інших сайтах

1 минуту назад, Strelez сказал:

Может быть дело в этом?


<base href="">

 

Именно там
Не правильный мета тег base

 

Надіслати
Поділитися на інших сайтах

8 минут назад, efremovxp сказал:

<base href="<?php echo $base; ?>" />

На что же его менять?

Здесь ничего не надо менять. Идите в контроллер шапки и смотрите, почему у вас переменная $base передаётся в шаблон пустой.

  • +1 2
Надіслати
Поділитися на інших сайтах


Только что, Dotrox сказал:

Здесь ничего не надо менять. Идите в контроллер шапки и смотрите, почему у вас переменная $base передаётся в шаблон пустой.

$data['base'] = $server;

Ничего связанного с $base там нет, проверил в чистом opencart контроллер шапки, там так же ничего связанного с $base. Откуда он берется и почему может быть пустым?

Надіслати
Поділитися на інших сайтах

Только что, efremovxp сказал:

$data['base'] = $server;

Это и есть $base.

Всё, что в контроллере в виде ключей массива $data - в шаблоне превращается в переменные. Смотрите дальше на $server.

И не забывайте про кеш модификаторов. В оригинальных файлах проблем может и не быть.

  • +1 1
Надіслати
Поділитися на інших сайтах


3 минуты назад, Dotrox сказал:

Это и есть $base.

Всё, что в контроллере в виде ключей массива $data - в шаблоне превращается в переменные. Смотрите дальше на $server.

И не забывайте про кеш модификаторов. В оригинальных файлах проблем может и не быть.

тут

/system/storage/modification/catalog/view/theme/welldone/template/common

и тут

/system/storage/modification/catalog/controller/common

нет файла header.tpl и header.php

Я в тупике

Надіслати
Поділитися на інших сайтах

1 минуту назад, Dotrox сказал:

Это и есть $base.

Всё, что в контроллере в виде ключей массива $data - в шаблоне превращается в переменные. Смотрите дальше на $server.

И не забывайте про кеш модификаторов. В оригинальных файлах проблем может и не быть.

Там по цепочке много чего может быть :)
К примеру config.php для https часто заполняют url без схемы не https://...  а тупо //...
Потом начинаются проблемы. (но может в данном случае быть и другая ошибка)
Уже не раз встречал "такое" с base после перехода на https у клиентов
По "цепочке" модулями где то меняется переменная конфига отвечающая за имя домена на https протоколе

Надіслати
Поділитися на інших сайтах

2 минуты назад, markimax сказал:

Там по цепочке много чего может быть :)
К примеру config.php для https часто заполняют url без схемы не https://...  а тупо //...
Потом начинаются проблемы. (но может в данном случае быть и другая ошибка)
Уже не раз встречал "такое" с base после перехода на https у клиентов
По "цепочке" модулями где то меняется переменная конфига отвечающая за имя домена на https протоколе

// HTTP
define('HTTP_SERVER', 'https://xn----8sboehdjaf6axwc9j.xn--p1ai/');

// HTTPS
define('HTTPS_SERVER', 'https://xn----8sboehdjaf6axwc9j.xn--p1ai/');

Сайт с самого начала, еще пол года назад работал на https

Надіслати
Поділитися на інших сайтах

Только что, Dotrox сказал:

Да, я тоже подумал, что в эти 1-2 недели, когда появилась проблема, как раз и мог быть переход на https.

:) Знаю как вы реагируете на это, но SEO HTTPS FIX PRO реально помогает и в этих случаях, это факт.
 

Надіслати
Поділитися на інших сайтах

Вспомнил, что единственное, что я делал, это проверял сайт по этой ссылке http://ocshop.info/testmyshop.html

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

Надіслати
Поділитися на інших сайтах

 

Только что, efremovxp сказал:

Куда этот сайт стучится, что он проверяет?

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

Кстати, а в админке у вас проблем с base нет.

 

Только что, markimax сказал:

:) Знаю как вы реагируете на это, но SEO HTTPS FIX PRO реально помогает и в этих случаях, это факт.

Я на это нормально реагирую, если не утверждать, что любые другие решения - костыли.

  • +1 1
Надіслати
Поділитися на інших сайтах


Там и другая проблема

В header заменены "стандартные" относительные пути на "/...

Т е здесь проблема "глобальная" а не только в base

Надіслати
Поділитися на інших сайтах

2 минуты назад, Dotrox сказал:

Я на это нормально реагирую, если не утверждать, что любые другие решения - костыли.

Я привык называть вещи своими именами

Если это костыль - то костыль. И не надо на это обижаться

Надіслати
Поділитися на інших сайтах

37 минут назад, markimax сказал:

В header заменены "стандартные" относительные пути на "/...

Т е здесь проблема "глобальная" а не только в base

А в админке все норм. Вспоминайте, что меняли.

  • +1 1
Надіслати
Поділитися на інших сайтах


3 часа назад, markimax сказал:

Там и другая проблема

В header заменены "стандартные" относительные пути на "/...

Т е здесь проблема "глобальная" а не только в base

 

2 часа назад, Strelez сказал:

А в админке все норм. Вспоминайте, что меняли.

специально поменял на / чтобы хоть как то работало. А то вообще ни стилей ни js ни изображений не было.

Надіслати
Поділитися на інших сайтах

Не понимаю, на какой магии это работало и почему перестало работать, ведь я ничего не трогал.

Решение оказалось таким:

заменить

$data['base'] = $server

на

if ($this->request->server['HTTPS']) {
    $data['base'] = HTTPS_SERVER;
} else {
    $data['base'] = HTTP_SERVER;
}

 

Надіслати
Поділитися на інших сайтах

4 минуты назад, efremovxp сказал:

Не понимаю, на какой магии это работало и почему перестало работать, ведь я ничего не трогал.

Решение оказалось таким:

заменить


$data['base'] = $server

на


if ($this->request->server['HTTPS']) {
    $data['base'] = HTTPS_SERVER;
} else {
    $data['base'] = HTTP_SERVER;
}

 

Ну это костыль :)

Вы разберитесь почему $server из переменных конфига не получил правильное имя домена
Потому что рано или поздно все равно всплывет в другом месте похожий баг

Надіслати
Поділитися на інших сайтах

12 минут назад, markimax сказал:

Ну это костыль :)

Вы разберитесь почему $server из переменных конфига не получил правильное имя домена
Потому что рано или поздно все равно всплывет в другом месте похожий баг

Это я подсмотрел в /admin/controller/common/header.php

Не понятно, почему в админской и пользовательской части это сделано по разному.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.