хорошо, это было трудно заставить работать, но я сделал это следующим образом.
Я добавил следующую строку в мой .htaccess FallbackResource index.php
Чтобы сделать это, убедитесь, что вы используете более новую версию apacheтак как это относительно новая функция apache.Это происходит, когда он не находит страницу, которую вы запрашивали, и переходит на страницу index.php вместо стандартного apache 404.
Затем я добавил страницу index.php, где у меня был следующий код
$whitelist = [
"Rotterdam",
"Amsterdam",
];
$cwhitelist = [];
foreach ($whitelist as $key => $value) {
array_push($cwhitelist,strtolower($value));
}
$urlpath = strtolower(basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
$inarr = in_array($urlpath,$cwhitelist);
if(!$inarr){
$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
if($actual_link != "https://www.slotenmakergroep.nl/"){
if( $actual_link != "http://www.slotenmakergroep.nl/"){
session_start();
$_SESSION["link"] = $actual_link;
header("Location: 404.php",true,301);
}
}
}
Это следующее: у меня есть массив белых ссылок, которые я одобряю, а затем делаю их строчными.
После этого я беру URL-адрес и текст после косой черты.и проверьте, находится ли этот текст в массиве.если он находится в массиве, я также проверяю, является ли его http-ссылкой или https-ссылкой.
И чтобы завершить, если ссылка отсутствует в белом списке, я отправляю их на страницу 404.php и в сеансе сохраняюпо какой ссылке они пытались получить доступ.