Автор Тема: Не могу включить 404 ошибку в категориях  (Прочитано 696 раз)

25 Январь 2019, 12:18:45
  • Пользователь
  • **
  • Сообщений: 92
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В категориях нет 404 ошибки, если набрать неправильную категорию и в таком случае он по неправильной ссылке покажет корневую категорию.

Можно просто ввести любую ссылку на категорию(например, /catalog/text/  ) и по этой ссылке будет показана самая главная категория.

Должно же быть, что если категория не найдена, то по этой же ссылке должна отобразится страница с 404 ошибкой и http status 404 , а по факту http status 200.

Установлен модуль v2.1.1-fsadvancedurl

В настройках есть пункт:
Category not found redirect type:
Выбрал значение No redirect

Кто сталкивался с этой проблемой?
Как решили?
25 Январь 2019, 13:52:48
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Apache или Ngnix у вас?
404 ошибку в конф.веб сервера устанавлиют, если nginx.
25 Январь 2019, 15:55:53
Ответ #2
  • Пользователь
  • **
  • Сообщений: 92
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Apache или Ngnix у вас?
404 ошибку в конф.веб сервера устанавлиют, если nginx.
Apache
25 Январь 2019, 16:00:00
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404
в htaccess правила редиректа на 404 ошибку
Cоздание интернет сайтов Webstudio UwK
25 Январь 2019, 22:21:33
Ответ #4
  • Пользователь
  • **
  • Сообщений: 92
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404
в htaccess правила редиректа на 404 ошибку

эта запись итак есть.

Проблема только с категориями товаров.
Если перейти по неправильной ссылке на товар то срабатывает редирект на страницу page_not_found,
тоже как то странно, что 404 не по неправильной ссылке показывается.

А с обычными страницами нет никаких проблем, показывает 404 сразу при вводе неправильной ссылки.

Похоже модуль надо переписывать advanvedurl
08 Февраль 2019, 10:46:30
Ответ #5
  • Пользователь
  • **
  • Сообщений: 92
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
решилось все дописыванием дополнительного условия в CategoryController  в методе init()

Было так:

if (!Validate::isLoadedObject($this->category) || !$this->category->active  )
{
     Tools::redirect('index.php?controller=404');
}

Стало так:

if (!Validate::isLoadedObject($this->category) || !$this->category->active || ( $this->category->link_rewrite != "" && $_SERVER['REQUEST_URI'] != "/catalog/".$this->category->link_rewrite."/" )  )
{
     Tools::redirect('index.php?controller=404');
}


Разочаровался конечно в prestashop, что несуществующая страница отдает статус 302 и редиректит на 404 страницу.   :o :o :o :o :o :o :o :o :o

Как отдать статус 404 без редиректов?
08 Февраль 2019, 14:42:05
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
"/catalog/" - это откуда?
Если меняешь правила чпу по своим запросам, то и правила редиректа меняй.
08 Февраль 2019, 14:56:24
Ответ #7
  • Пользователь
  • **
  • Сообщений: 92
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
"/catalog/" - это откуда?
Если меняешь правила чпу по своим запросам, то и правила редиректа меняй.
Настроил с помощью advancedurl.

Но редирект идет на уровне самой престы.
Как сделать чтобы отдавал статус без редиректов?
08 Февраль 2019, 15:09:11
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
В стандартном пакете prestashop, без всяких модулей, 404 ошибку обрабатывает без проблем.
В модуле нужно копаться, в нем причина. В тех поддержку модуля напишите,  может они уже исправили проблему.