PHP, как обрабатывать несуществующие URL на сайте с одной точкой входа, который использует mod_rewrite - PullRequest
1 голос
/ 24 октября 2009

Я занимаюсь разработкой веб-сайта на PHP и использую mod-rewrite для реализации единой точки входа в index.php. Оттуда я использую таблицу диспетчеризации для динамического создания контента для каждого URL (может быть из БД или других средств).

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

Я уверен, что многие из вас сделали такую ​​вещь, и очевидно, как это сделать, но поиск в Google выводит только результаты, которые не имеют отношения.

Заранее спасибо за любое решение или ссылку на решение.

Решение до сих пор:

Я использую это

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");

непосредственно перед добавлением содержимого страницы с ошибкой.

Ответы [ 3 ]

1 голос
/ 25 октября 2009

Пока то, что вы делаете, соответствует определению HTTP Spec правильно сформированной строки состояния , и вы используете 404 правильно . Это вполне приемлемо. Вы делаете это правильно!

0 голосов
/ 25 октября 2009

Я думаю, что то, что вы делаете, вероятно, будет работать нормально.

Что касается размещения на странице, в Интернете есть несколько ресурсов. Тот, который сразу приходит на ум, - это , который Opera недавно поставила . Он использует Python в качестве примера языка, но это довольно простые вещи.

0 голосов
/ 24 октября 2009

Если вы хотите отправить код 404 в браузер, используя PHP, вы должны написать в заголовок:

header("HTTP/1.0 404 Not Found");

, по-видимому.

Что касается генерации догадок, я предполагаю, что вы сделаете запрос LIKE в столбце URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...