Хорошо, я использую традиционный 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'); }