Здравствуйте.Столкнулся с такой проблемой: При запросе несуществующей страницы происходит 302 редирект,а затем переадресация на 404 ошибку. Как сделать так,что бы 404 выдавалась сразу,без 302 редиректа? Спасибо.
1) 302 редирект проявляется только в каталоге 2) 302 редирект делает битрикс, а не апач или нжинкс (видно по заголовкам) 3) 302 редирект явно добавлен предыдущим разработчиком (штатные компоненты так себя не ведут)
Где этот редирект может находиться (от более вероятного к менее вероятному): * в компонентах или шаблонах каталога * в /bitrix/php_interface/init.php или в подключаемых в нём файлах * в шаблоне сайта * ещё где-то, если предыдущий разработчик решил извратиться
Ну, что тут можно сделать. Искать. Строки для поиска: "302", "404.php", "LocalRedirect", "header("
Dmitry, к файлу /bitrix/php_interface/init.php подключался файл /bitrix/gkcatalog.php. В нем я нашел 2 строки с таким содержанием:header("Location: /404.php"),могут ли они быть причиной 302 редиректа? Если да,то как нужно их переписать?Спасибо. Отрывок из кода:
public static function getMode(){ $TIMESTART = timeMeasure(); //if(!GKCatalog::getState()) header("Location: /404.php");
Спасибо,но теперь возникла другая проблема.При запросе несуществующей страницы,перестает работать скрипт 404.php.Аналогичная ситуация возникает,если исправить
Битрикс не умеет показывать 404 страницу при запросе неверного урла (если этот урл обрабатывает битрикс, а не веб-сервер). Например, такого, как lovesport.ru/catalog/жопа_с_ручкой/
Предыдущий разработчик сайта вышел из положения следующим образом: при запросе неверного урла он перенаправлял юзера на 404 страницу через 302 редирект.
Я обычно делаю так: если урл неправильный, определяем константу ERROR_404; если определена константа ERROR_404, показываем 404 страницу.