all repos — nasg @ 864bb544967142fefe6f2abcc66d21464d0a567b

templates/Index.j2.php (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
<?php

$redirects = array(
{% for from, to in redirects.items() %}
    "{{ from }}" => "{{ to }}",
{% endfor %}
);

$gone = array(
{% for gone in gones %}
    "{{ gone }}" => true,
{% endfor %}
);


function redirect_to($uri) {
    header('HTTP/1.1 301 Moved Permanently');
    if (preg_match("/^https?/", $uri))
        $target = $uri;
    else
        $target = '{{ site.url }}/'.  trim($uri, '/') . '/';
    header("Location: ". $target);
    exit;
}

function gone($uri) {
    header('HTTP/1.1 410 Gone');
    die('<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width,initial-scale=1,minimum-scale=1" name="viewport"/>
  <title>Gone</title>
 </head>
 <body>
<h1><center>This content was deleted.</center></h1>
<hr>
<p><center>{{ site.domain }}</center></p>
 </body>
</html>');
}

function notfound() {
    header('HTTP/1.0 404 Not Found');
    die('<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="utf-8"/>
  <meta content="width=device-width,initial-scale=1,minimum-scale=1" name="viewport"/>
  <title>Not found</title>
 </head>
 <body>

<h1><center>This was not found.</center></h1>
<h2><center>Please search for it instead.</center></h2>
<p>
    <center>
<form action="/search.php" class="search-form" method="get" role="search">
  <label for="search">Search</label>
  <input id="q" name="q" placeholder="search..." title="Search for:" type="search" value=""/>
  <input type="submit" value="OK"/>
</form>
    </center>
</p>
 </body>
</html>');
}

function maybe_redirect($uri) {
    if (file_exists("./$uri/index.html")) {
        redirect_to($uri);
    }
}

$uri = filter_var($_SERVER['REQUEST_URI'], FILTER_SANITIZE_URL);
$uri = str_replace('../', '', $uri);
$uri = str_replace('/feed/', '', $uri);
$uri = str_replace('/atom/', '', $uri);
$uri = trim($uri, '/');

if (isset($gone[$uri]))
    gone($uri);
elseif (isset($redirects[$uri]))
    redirect_to($redirects[$uri]);
elseif (strstr($uri, '_'))
    maybe_redirect(str_replace('_', '-', $uri));
else
    notfound();