104 lines
3.1 KiB
PHP
104 lines
3.1 KiB
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 */
|
|
|
|
$uri = escapeshellcmd($_SERVER['REQUEST_URI']);
|
|
$serverName = escapeshellcmd($_SERVER['SERVER_NAME']);
|
|
|
|
// Retrieve server URI extension (EG: jpg, exe, php)
|
|
$uriExt = pathinfo($uri, PATHINFO_EXTENSION);
|
|
|
|
// Define which URL extensions get rendered as "Website Blocked"
|
|
$webExt = array('asp', 'htm', 'html', 'php', 'rss', 'xml');
|
|
|
|
if(in_array($uriExt, $webExt) || empty($uriExt))
|
|
{
|
|
// Requested resource has an extension listed in $webExt
|
|
// or no extension (index access to some folder incl. the root dir)
|
|
$showPage = true;
|
|
}
|
|
else
|
|
{
|
|
// Something else
|
|
$showPage = false;
|
|
}
|
|
|
|
// Handle incoming URI types
|
|
if (!$showPage)
|
|
{
|
|
?>
|
|
<html>
|
|
<head>
|
|
<script>window.close();</script></head>
|
|
<body>
|
|
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
|
|
</body>
|
|
</html>
|
|
<?php
|
|
die();
|
|
}
|
|
|
|
// Get Pi-Hole version
|
|
$piHoleVersion = exec('cd /etc/.pihole/ && git describe --tags --abbrev=0');
|
|
|
|
// Don't show the URI if it is the root directory
|
|
if($uri == "/")
|
|
{
|
|
$uri = "";
|
|
}
|
|
|
|
?>
|
|
<!DOCTYPE html>
|
|
<head>
|
|
<meta charset='UTF-8'/>
|
|
<title>Website Blocked</title>
|
|
<link rel='stylesheet' href='http://<?php echo $_SERVER['SERVER_ADDR']; ?>/admin/blockingpage.css'/>
|
|
<link rel='shortcut icon' href='http://<?php echo $_SERVER['SERVER_ADDR']; ?>/admin/img/favicon.png' type='image/png'/>
|
|
<meta name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0, user-scalable=no'/>
|
|
<meta name='robots' content='noindex,nofollow'/>
|
|
</head>
|
|
<body id="body">
|
|
<header>
|
|
<h1><a href='/'>Website Blocked</a></h1>
|
|
</header>
|
|
<main>
|
|
<div>Access to the following site has been blocked:<br/>
|
|
<span class='pre msg'><?php echo $serverName.$uri; ?></span></div>
|
|
<div>If you have an ongoing use for this website, please ask the owner of the Pi-Hole in your network to have it whitelisted.</div>
|
|
<input id="domain" type="hidden" value="<?php echo $serverName; ?>">
|
|
<input id="quiet" type="hidden" value="yes">
|
|
<button id="btnSearch" class="buttons blocked" type="button" style="visibility: hidden;"></button>
|
|
This page is blocked because it is explicitly contained within the following block list(s):
|
|
<pre id="output" style="width: 100%; height: 100%;" hidden="true"></pre><br/>
|
|
<div class='buttons blocked'><a class='safe' href='javascript:history.back()'>Go back</a>
|
|
</main>
|
|
<footer>Generated <?php echo date('D g:i A, M d'); ?> by Pi-hole <?php echo $piHoleVersion; ?></footer>
|
|
<script src="http://<?php echo $_SERVER['SERVER_ADDR']; ?>/admin/js/other/jquery.min.js"></script>
|
|
<script src="http://<?php echo $_SERVER['SERVER_ADDR']; ?>/admin/js/pihole/queryads.js"></script>
|
|
<script>
|
|
function inIframe () {
|
|
try {
|
|
return window.self !== window.top;
|
|
} catch (e) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
// Try to detect if page is loaded within iframe
|
|
if(inIframe())
|
|
{
|
|
// Within iframe
|
|
// hide content of page
|
|
$('#body').hide();
|
|
// remove background
|
|
document.body.style.backgroundImage = "none";
|
|
}
|
|
else
|
|
{
|
|
// Query adlists
|
|
$( "#btnSearch" ).click();
|
|
}
|
|
// }
|
|
</script>
|
|
</body>
|
|
</html>
|