2010-05-13 2 views
0

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

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

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

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

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

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

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

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

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

+1

Это было бы очень неприятно, ИМХО. Вы должны показать страницу ошибки 404 со ссылкой на домашнюю страницу, а не выполнять автоматическое перенаправление. – nico

ответ

1

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

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

+0

Да, после того, как он подумал, было бы лучше не просто перенаправить. Я просто собираюсь оставить вещи такими, какими они не являются. Спасибо. –

0

Вы можете добавить это в ваш Htaccess

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

или

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

Это пошлет intials 404 заголовка

2

Это дает вам 200 код, потому что вы перенаправляют на страницу который возвращает код 200. Путь ive сделал это прежде, чем отправить 404-заголовок, а затем загрузить представление 404.

header("HTTP/1.0 404 Not Found"); 
include("four_o_four.php"); 
Смежные вопросы