Перенаправление на главную страницу после ошибки 404 в PHP - PullRequest
0 голосов
/ 13 мая 2010

У меня есть веб-страница php, которая теперь использует пользовательские страницы ошибок, когда страница не найдена. Пользовательские страницы ошибок включены в PHP.

Поэтому, когда кто-то вводит URL, который не существует, я просто включаю страницу с ошибкой, и страница с ошибкой начинается с:

<?php header("HTTP/1.1 404 Not> Found"); ?>

Это также говорит сканерам, что страница не существует.

Теперь я настроил новую систему. Когда пользователь вводит неправильный URL-адрес, он отправляется обратно на главную страницу, и на главной странице отображается сообщение. Я перенаправляю на главную страницу вот так:

header('Location:' . __TINY_URL . '/');

Теперь проблема в том, что PHP просто отправляет обратно код 200, найдена страница.

Как я могу смешать эти два, чтобы создать код 404 на главной странице.

И это в целом хороший способ представления и ошибка страницы.

Ответы [ 3 ]

2 голосов
/ 13 мая 2010

Это дает вам код 200, потому что вы перенаправляете на страницу, которая возвращает код 200. Я сделал это раньше, отправив заголовок 404, затем загрузив представление 404.

header("HTTP/1.0 404 Not Found");
include("four_o_four.php");
1 голос
/ 13 мая 2010

Перенаправление после ошибки не очень хорошая идея. Это особенно раздражает людей, которые любят вводить / редактировать URL-адреса, потому что, если вы сделаете опечатку, вы будете перенаправлены на какую-то произвольную страницу и должны начать все сначала.

Я предлагаю тебе вообще этого не делать. Если вы хотите, вы можете сделать так, чтобы ваша страница с ошибкой выглядела как ваша главная страница, хотя я думаю, что это несколько сбивает с толку.

0 голосов
/ 13 мая 2010

Вы можете добавить это в свой htaccess

ErrorDocument 404 http://www.yourdomain.com/404.php

или

ErrorDocument 404 http://www.yourdomain.com/index.php #Your homepage

Это отправит заголовок Intials 404

...