Один из способов сделать это - просто посмотреть на $_SERVER['REQUEST_URI']
и определить, указывает ли он что-то недействительное.
В то время как ваш пример, вероятно, упрощена на этот вопрос, это может быть столь же просто, как
if ($_SERVER['REQUEST_URI'] != 'test.php') {
//we are handling a 404
header("HTTP/1.0 404 Not Found");
echo "These aren't the droids you're looking for";
}
Вам может понадобиться более сложная логика, но все сводится к поиску по запросу и обнаружение его недействительным.
До тех пор, пока ErrorDocument является относительным URL (не начинается с http://...), То вы должны найти, что ваш скрипт содержит дополнительные переменные $ _SERVER, например.
$_SERVER["REDIRECT_URL"]; // /original/path
$_SERVER['REDIRECT_STATUS']; // 404
См ErrorDocument документации для получения более подробной информации.
В качестве альтернативы просто передайте строку запроса arg в обработчик 404, например. ErrorDocument 404 /test.php?error=404
:)
Можете ли вы уточнить - хотите ли вы определить код ответа HTTP-запроса, который вы сделали другому серверу с PHP? Похоже, вы хотите получить код ответа для запроса, который вы сейчас обрабатываете, и обычно это будет 200, если вы не переопределите его с помощью заголовка() –
См. Http://stackoverflow.com/questions/408405/easy- way-to-test-a-url-for-404-in-php для проверки удаленных URL-адресов для 404 ответов –
@Paul Dixon Я имею в виду: как проверить, является ли текущий URL-адрес 404 или нет? – user7128548