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

Как и где выдавать 404 при необходимости?


Recommended Posts

Подскажите знающие,

 

В контроллере ловлю из ЮРЛ свою переменную, которую добавляю к строке &myvar=hello

Если она соответствует условия то все ок, выполняются действия, если нет то редирект на 404.

 

Пробовал и так:

 

if(мое условие) { $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found'); }

 

и так:

 
if(мое условие) { $this->redirect('/error/not_found'); }
 
Для пользователя все ок, перекидывает на "страница не найдена", но а для ботов то остается 202.
 
Вот собственно и вопрос: как и где "правильно" выдавать ботам 404 когда мне это нужно.
 
P.S.
Я правильно понимаю SEO, что не делая 404 при вариантах &myvar=hello1, &myvar=hello2, &myvar=hello3 и т.д.  могу получить гору дублей и низкий рейтинг страницы?
Надіслати
Поділитися на інших сайтах


Хммм, всегда думал, что страница выводится, а код ошибки сервер не присылает. Поэтому в .htaccess или конфигах nginx прописывал пути к кастомным страницам ошибок.

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

не понимаю вопроса

если вы умеет делать это

 $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found'); 

То что еще надо?

 

 

if(мое условие) { $this->redirect('/error/not_found'); }
 
Для пользователя все ок, перекидывает на "страница не найдена", но а для ботов то остается 202.

А чем пользователь отличается от бота?

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

не понимаю вопроса

если вы умеет делать это

 $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found'); 

То что еще надо?

 

А чем пользователь отличается от бота?

 

Это не работает, по крайней мере в контроллере продукта.

 

 

 

А чем пользователь отличается от бота?

Тем, что пользователь не видит хедеров и не замечает редирект, а бот то ловит первый выданный хедер, до редиректа, а он HTTP/1.1 200 OK

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


 

Тем, что пользователь не видит хедеров и не замечает редирект, а бот то ловит первый выданный хедер, до редиректа, а он HTTP/1.1 200 OK

Не совсем так...

 

Заголовки отправляются  на момент передачи данных

Если данные не предавались, то http/1.1 перезапишутся.

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

Не совсем так...

 

Заголовки отправляются  на момент передачи данных

Если данные не предавались, то http/1.1 перезапишутся.

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

 
public function index() { 
$this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found');
 
не дает 404й результат, все по прежнему HTTP/1.1 200 OK
проверял разными сервисами, в т.ч. телнетом :)
 
и вот не пойму почему он не отрабатывает. Потому и по интересовался у опытных программеров, где в коде генерить хедер по необходимости. Судя из постов Выше понимаю, что достаточно одной строки, осталось разобраться почему она не отрабатывает...
 
P.S.
Возможно еще грабли с Seo Pro, потому как после его использования он дико портит мне мои ЮРЛы, в которых я использую &myvariable=myparametr, но это уже отдельная тема для разговора.
Надіслати
Поділитися на інших сайтах


Эмммммм  :oops:  :oops:  :oops:  Всем спасибо за поддержку, похоже разобрался почему был HTTP/1.1 200 OK

 

Собственно причина, из за которой хотел сделать 404 и редирект выдавала ошибку PHP вида "Notice: Undefined... траливали" которая и генерила 200й хедер сколько я не пытался выводить его из кода, убрав PHP Notice стал генериться как положено строкой указанной выше.  :ugeek: 

 

Тему можно закрывать.

 

Полез в тему про Seo Pro в надежде на помощь в вопросах, почему он ломает мои пасочки юрлы...

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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