Добрый гдень.
Вот не ик давно столкнулся с одной фичей 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 комменириев
Рекомендованные комменирии
Нет комменириев для отображения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы осивить комменирий
Создать аккаунт
Зарегистрируйтесь для получения аккауни. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите згдесь.
Войти сейчас