patrickj
@patrickj
Ищу заказы на верстку

Редирект на 404 страницу wordpress?

Здравствуйте! Есть такая задача.
Сайт на wordpress. Есть страница 404.php, работает как надо: неверные адреса отдают код 404 и показывается 404 страница. Моего заказчика смущает то, что, когда показывается 404 страница, в адресной строке браузера остается по прежнему неправильный адрес, то есть, например, site.ru/lol/ вместо site.ru/404/.

Скажите, пожалуйста, можно ли сделать так, чтобы показе 404 страницы адрес менялся на site.ru/404/?

PS: Я сам понимаю, что вроде как никакого преимущества это не дает, но в данном случае легче сделать, чем убеждать в этом заказчика.
  • Вопрос задан
  • 5170 просмотров
Решения вопроса 2
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Здравствуйте.

function my_template_redirect(){
	if( is_404() && $_SERVER["REQUEST_URI"] != '/404/' ){
		wp_redirect( home_url( '/404/' ) );
		exit();
	}
}
add_action( 'template_redirect', 'my_template_redirect' );
Ответ написан
Добрый день. Возможно лучше сделать так.

function my_template_redirect(){ 
  if( is_404() && $_SERVER["REQUEST_URI"] != '/404/' ){ 
    header("HTTP/1.0 404 Not Found"); 
    echo "<script type='text/javascript'> document.location.href = 'http://site.ru/404/'; </script>"; 
    exit(); 
  } 
}

Так сервер вернёт только 404 ответ, без 301 редиректа.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы