Короче говоря, у меня есть динамические страницы на веб-сайте, на которых отображаются обзоры. Если нет отзывов, связанных с определенным городом/округом/районом/и т. д., запрос mysql возвращает 0 строк, что запускает следующий код:
if (!$validRevQuery) {
header("HTTP/1.0 404 Not Found");
include("http://{$PDS['site']}/404.php?request=".urlencode($_SERVER['REQUEST_URI']));
exit;
}
На некоторых веб-хостингах это вызывает ошибку «Доступ к файлу URL отключен». Это нормально, но на тех, которые разрешают доступ к файлам по URL, файл 404 включается и правильно отображается. Я немного изменил код, чтобы отобразить абсолютный путь следующим образом:
if (!$validRevQuery) {
header("HTTP/1.0 404 Not Found");
$_GET['request'] = urlencode($_SERVER['REQUEST_URI']);
include($_SERVER['DOCUMENT_ROOT']."/404.php");
exit;
}
И теперь он дает мне общее «Ой! Эта ссылка, кажется, не работает». страница ошибки. (У меня есть панель инструментов Google, поэтому она может отличаться в зависимости от браузера и плагинов). Не знаю, почему это происходит, поэтому любая помощь приветствуется!
$_GET['request']
работает? Не то, что я когда-либо пытался сделать. Нельзя ли просто вызвать$_SERVER['REQUEST_URI']
из 404.php? Я думал, что это сработает, поскольку веб-сервер запросил только один URI. Я считаю, что материалы Google показывают это общее сообщение, когда предоставленный контент 404 слишком мал (не уверен в точной длине символа, Google это;)) - person chigley   schedule 19.10.2010GET
в любом случае звучит как плохая практика. - person Pekka   schedule 19.10.2010$_SERVER["REQUEST_URI"]
будет доступен в404.php
, если вы включите его так, как показано во втором примере! Так что, скорее всего, вам не нужно будет хранить его в любом случае. - person Pekka   schedule 19.10.2010