2013-06-10 5 views
0

Я сделал пользовательскую ошибку 404 страниц и использовали .htaccess использовать, что с помощью: ErrorDocument 404 «error_page.php»Показать ошибка 404 страница с использованием Php

Теперь проблема заключается в том, что у меня есть profile.php где я показываю профили пользователей. Если имя пользователя, указанное в URL-адресе, не существует, я перенаправляю на index.php. Вместо этого я хочу показать страницу с ошибкой 404 с моей страницей пользовательских ошибок. Будет ли этого достаточно, чтобы сделать это эффективно?

header("HTTP/1.1 404 Not Found"); 
include 'error_page.php'; 
exit(); 

спасибо.

+0

Вот как это делается – Orangepill

+0

Это будет иметь тот же эффект, что и страница с ошибкой Apache, однако запись в журнале ошибок не будет выполнена. Это может быть или не быть релевантным для вас. –

+0

Я хочу иметь тот же эффект, что и при посещении пользователем страницы, которая не существует. Как я могу это сделать? т.е. как я могу получить его в журнале ошибок? Я думал, что заголовок также помещает запись в журнал ошибок. – user2471133

ответ

1

Он должен работать, но вы также можете перенаправить на страницу с ошибкой (но вы потеряете текущий URL).

header('Location: /error_page.php'); 
die(); 

EDIT: Если вы действительно хотите в журнале ошибок, дешевый (и некрасиво) способ для перенаправления на несуществующие страницы:

header('Location: /404'.$_SERVER['REQUEST_URI']); 
die(); 

Таким образом, вы получите журналы с /404/path/to/profile.php?userid=9999, чтобы вы получили указание на то, что было запрошено.

+0

Я знал об этом, но это не даст ошибку 404 поисковым системам. а также пользователь не будет знать, что он на самом деле набрал в URL. – user2471133

+0

Если вы хотите, чтобы поисковая система знала, что это 404, вам нужно разместить 'header (« HTTP/1.1 404 Not Found »);' вверху вашего файла error_page.php. –

+0

Если вы действительно хотите это в журнале ошибок, предпочтительный способ сделать это - использовать функцию '' error_log' (http://www.php.net/manual/en/function.error-log.php) – nstCactus

Смежные вопросы