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

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


konorws

2 140 переглядів

Добрый день. 

Вот не так давно столкнулся с одной фичей 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 коментарів


Recommended Comments

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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