mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-22 23:08:07 +00:00
Improve Error 404 page behavior
This commit is contained in:
parent
d38e034e92
commit
f09c166350
@ -1,15 +1,31 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Detailed Pi-Hole Block Page: Show "Website Blocked" if user browses to site, but not to image/file requests based on the work of WaLLy3K for DietPi & Pi-Hole */
|
/* Detailed Pi-Hole Block Page: Show "Website Blocked" if user browses to site, but not to image/file requests based on the work of WaLLy3K for DietPi & Pi-Hole */
|
||||||
|
|
||||||
|
function validIP($address){
|
||||||
|
if (preg_match('/[.:0]/', $address) && !preg_match('/[1-9a-f]/', $address)) {
|
||||||
|
// Test if address contains either `:` or `0` but not 1-9 or a-f
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return !filter_var($address, FILTER_VALIDATE_IP) === false;
|
||||||
|
}
|
||||||
|
|
||||||
$uri = escapeshellcmd($_SERVER['REQUEST_URI']);
|
$uri = escapeshellcmd($_SERVER['REQUEST_URI']);
|
||||||
$serverName = escapeshellcmd($_SERVER['SERVER_NAME']);
|
$serverName = escapeshellcmd($_SERVER['SERVER_NAME']);
|
||||||
|
|
||||||
// Retrieve server URI extension (EG: jpg, exe, php)
|
// Retrieve server URI extension (EG: jpg, exe, php)
|
||||||
|
ini_set('pcre.recursion_limit',100);
|
||||||
$uriExt = pathinfo($uri, PATHINFO_EXTENSION);
|
$uriExt = pathinfo($uri, PATHINFO_EXTENSION);
|
||||||
|
|
||||||
// Define which URL extensions get rendered as "Website Blocked"
|
// Define which URL extensions get rendered as "Website Blocked"
|
||||||
$webExt = array('asp', 'htm', 'html', 'php', 'rss', 'xml');
|
$webExt = array('asp', 'htm', 'html', 'php', 'rss', 'xml');
|
||||||
|
|
||||||
|
// Immediately quit since we didn't block this page (the IP address or pi.hole is explicitly requested)
|
||||||
|
if(validIP($serverName) || $serverName === "pi.hole")
|
||||||
|
{
|
||||||
|
http_response_code(404);
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
if(in_array($uriExt, $webExt) || empty($uriExt))
|
if(in_array($uriExt, $webExt) || empty($uriExt))
|
||||||
{
|
{
|
||||||
// Requested resource has an extension listed in $webExt
|
// Requested resource has an extension listed in $webExt
|
||||||
|
Loading…
Reference in New Issue
Block a user