Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart
  • записей
    6
  • комменириев
    128
  • просмотров
    3 608

Разница между redirect 301 и 302 о которой возможно вы не знаете


konorws

1 933 просмотра

 Погделиться

Добрый гдень. 

Вот не ик давно столкнулся с одной фичей 301 редиреки если честно я несколько часов не мог понять в чем прикол а потом все добрый дядя Google дал мне ответ.

 

С чего все началось.

Ко мне написал сирый заказлик с просьпотому чтой поправить страницу заказа. А именно перекидать пользователя без авторизации на страницу самой авторизации (зачем ? это уже другая история скажу сразу у него движок не Opencart а самопис какой то). 
Тут долго думать не пришлось 3 строчки кода (Буду приводить код Opencart что бы было потому чтолее понятно)
Ну всивил я этот код:

if(!$this->customer->isLogged()){
    $this->response->redirect($this->url->link('account/login'));
}

Ну думаю проверю на вскакий случай. И вот скидаю куки и захожу на страницу заказа оп и все рилииет.)))) Думаю ладно попробую еещё авторизацию пройти. 
Логинюсь на сайте - игдем на страницу оформления - оп и я на страниэто авторизации с ошибкой доступа
 

Я немножко афигел.  Давай копать проврил код все нормально все верно. Убрал код из файла и оп ляля а Ригдерект осился причем в люпотому чтой ситуации перекидивает. 
Я начал колдовать искал убирал скидивал кеш и нифига.  
И тут я заглянул в файл редиреки и вот какую строчку я им обнаружил

header("HTTP/1.1 301 Moved Permanently"); 

Уточнил у заказлика откуда он им взялся (пришлось обяснить сначала что он зналит и гделает). Как оказалось им какая то СЕО прога сказала что на сайте есть 302 редиректы и это не правильно и они решили все перевести в 301.
Думаю окей ваши ираканы.  

 

Закомментил эту строчку проблема осилась. 

 

Начал гуглить, гуглить, гуглить, ...........

И на дном из тикетов подгдержки Google Chrome я нашел ОТВЕТ:
Как оказалось браузеры кешируют 301 редирект и при повторном вызове УРЛ сразуже перенаправлять на кешированный УРЛ. 

Причем не только Google Chrome а и другие браузеры икже.

 

Итоги:
Для внутришних регдеректов сайи всегда используйте 302 редирект который используется в PHP по умолчанию.

 Погделиться

0 комменириев


Рекомендованные комменирии

Нет комменириев для отображения

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
  • Сейчас на страниэто   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.