Оценить перенаправление PHP 404, связанное с неверным запросом на получение

Хорошо, я использую традиционный php, никаких фреймворков, ничего, я использую простой процедурный способ, теперь мой вопрос в том, что я искал какое-то время, но не получаю ответа на мой вопрос, я не использую файлы .htaccess на данный момент, но мне действительно нужно понять, как работает ошибка 404? У меня есть веб-сайт, где я показываю сообщение, связанное с категорией, например category = php, поэтому я передаю это как запрос на получение

$_GET['category'] == 'php'; 

В настоящее время я делаю что-то вроде этого:

 $pocategory = $_GET['category']; if($pocategory == 'php' || $pocategory == 'javascript') { //Then show related posts } else { header('Location:404.php'); exit; } 

Я имею в виду, что я просто хочу, чтобы php и javascript были полезными для значения запроса, остальное я хочу перенаправить на 404, но я не понимаю, как это сделать, поэтому я сделал так, что, если у меня есть более 50 категорий? Я не могу перечислить их всех в этом условии if, Inshort, как определить, является ли данное значение запроса получения недопустимым или нет.

Любая помощь будет высоко ценится.

.htaccess – это способ сделать это.

 ErrorDocument 404 index.php?404 

эта строка сообщит apache, какой файл загрузить. В приведенном выше примере вызывается основной скрипт index.php.

добавьте что-то вроде этого в начало вашего файла index.php:

 $error_404 = isset($_GET["404"]) ? true : false; 

теперь вы можете определить, есть ли у вас запрос на ошибку 404. $ error_404 будет правдой, поэтому почему бы не добавить простую функцию:

 function error_404($error_404) { if($error_404 == true) { // do some error stuff here, like set headers, and some text to tell your visitor } } 

теперь просто вызывайте свою функцию:

 error_404($error_404); 

лучше сделать это immidiatley после обработчика get:

 error_404($error_404) $error_404 = isset($_GET["404"]) ? true : false; 

или объединить два в одну строку:

 error_404($error_404 = isset($_GET["404"]) ? true : false); 

для ответа на вопрос, добавьте это в соответствующий скрипт:

 $pocategorys_ar = array("php","javascript"); if (!in_array($pocategory, $pocategorys_ar)) { error_404(true); } 

Убедитесь, что он имеет доступ к функции error_404 ().

Вы можете поместить все категории внутри массива следующим образом:

 $pocategories = array ( 'php', 'javascript' ); if (in_array($pocategory, $pages)) { // ... } else { header('Location:404.php'); } 

Другое дело, что вы можете создать файл html / php для каждой категории и сделать это так

 if (is_file('sites/' . $popcategory . '.php') { include('sites/' . $popcategory . '.php'); } else { header('Location:404.php'); }