132 lines
4 KiB
PHP
132 lines
4 KiB
PHP
<?php
|
|
date_default_timezone_set('Europe/Copenhagen');
|
|
if (!function_exists('h')) {
|
|
function h($s){ return htmlspecialchars((string)$s, ENT_QUOTES, "UTF-8"); }
|
|
}
|
|
$headerTitles = require __DIR__ . '/header_titles.php';
|
|
$siteHeaderTitle = $headerTitles[array_rand($headerTitles)];
|
|
$messages = [
|
|
[
|
|
'title' => '404 - Unreliable',
|
|
'body1' => "You shouldn't rely on an unreliable narrator.",
|
|
'body2' => 'Yet here we are.',
|
|
],
|
|
[
|
|
'title' => '404 - Not Found',
|
|
'body1' => 'The narrator said this page exists.',
|
|
'body2' => "You really shouldn't trust him by now.",
|
|
],
|
|
[
|
|
'title' => '404 - Page Missing',
|
|
'body1' => "If you've followed directions from the narrator,",
|
|
'body2' => 'this outcome should not surprise you.',
|
|
],
|
|
[
|
|
'title' => '404 - Lost',
|
|
'body1' => 'The narrator got us lost.',
|
|
'body2' => 'Again.',
|
|
],
|
|
[
|
|
'title' => '404 - Wrong Turn',
|
|
'body1' => 'You trusted the narrator.',
|
|
'body2' => 'That was your first mistake.',
|
|
],
|
|
[
|
|
'title' => '404 - Questionable Route',
|
|
'body1' => 'The route looked questionable.',
|
|
'body2' => 'The narrator called it an adventure.',
|
|
],
|
|
[
|
|
'title' => '404 - Bad Navigation',
|
|
'body1' => 'The narrator writes a travel blog.',
|
|
'body2' => 'Not a navigation manual.',
|
|
],
|
|
[
|
|
'title' => '404 - Lost again',
|
|
'body1' => 'The narrator got lost.',
|
|
'body2' => 'You chose to follow him.',
|
|
],
|
|
|
|
[
|
|
'title' => '404 - Not confident',
|
|
'body1' => 'The narrator made a confident prediction.',
|
|
'body2' => 'That should have been your warning.',
|
|
],
|
|
|
|
[
|
|
'title' => '404 - Unbelievable',
|
|
'body1' => 'You believed the narrator.',
|
|
'body2' => 'That is adorable.',
|
|
],
|
|
|
|
|
|
];
|
|
$siteHeaderTitle = $headerTitles[array_rand($headerTitles)];
|
|
$brandUrl = 'https://bubulescu.org/';
|
|
$message = $messages[array_rand($messages)];
|
|
http_response_code(404);
|
|
?>
|
|
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>MVLog - 404</title>
|
|
<?php include __DIR__ . '/_pwa_head.php'; ?>
|
|
|
|
<!-- Basic Open Graph -->
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:title" content="MVLog: journal of an unreliable narrator.">
|
|
<meta property="og:description" content="Motorcycle road stories, hockey passion, pizza nerdism and facts remembered by an unreliable narrator.">
|
|
<meta property="og:url" content="https://bubulescu.org/">
|
|
<meta property="og:site_name" content="Bubulescu.Org">
|
|
|
|
<!-- Image -->
|
|
<meta property="og:image" content="https://bubulescu.org/assets/img/bubulescuorg.jpg">
|
|
<meta property="og:image:secure_url" content="https://bubulescu.org/assets/img/bubulescuorg.jpg">
|
|
<meta property="og:image:type" content="image/jpeg">
|
|
<meta property="og:image:width" content="1200">
|
|
<meta property="og:image:height" content="630">
|
|
<meta property="og:image:alt" content="MVLog: journal of an unreliable narrator.">
|
|
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:image" content="https://bubulescu.org/assets/img/bubulescuorg.jpg">
|
|
|
|
|
|
<meta name="robots" content="noindex,nofollow">
|
|
<link rel="icon" type="image/png" href="assets/img/moto_travel.png">
|
|
<link rel="stylesheet" href="style.css?v=20260621c">
|
|
<style>
|
|
.not-found-card{
|
|
max-width:680px;
|
|
margin:0 auto;
|
|
background:rgba(27,30,34,.92);
|
|
backdrop-filter:blur(2px);
|
|
border-radius:.8rem;
|
|
padding:1.25rem 1.25rem 1.4rem;
|
|
box-shadow:0 2px 16px #0006;
|
|
text-align:center
|
|
}
|
|
.not-found-card h2{
|
|
font-size:1.8rem;
|
|
margin:.1rem 0 .9rem
|
|
}
|
|
.not-found-card p{
|
|
font-size:1.05rem;
|
|
line-height:1.55;
|
|
margin:.55rem 0
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<?php include __DIR__ . '/_header.php'; ?>
|
|
<main>
|
|
<section class="not-found-card" aria-labelledby="not-found-title">
|
|
<h2 id="not-found-title"><?=h($message['title'])?></h2>
|
|
<p><?=h($message['body1'])?></p>
|
|
<p><?=h($message['body2'])?></p>
|
|
</section>
|
|
</main>
|
|
<?php include __DIR__ . '/_footer.php'; ?>
|
|
</body>
|
|
</html>
|