diff options
| -rw-r--r-- | nginx/server.conf | 5 | ||||
| -rw-r--r-- | static/404.html | 55 |
2 files changed, 60 insertions, 0 deletions
diff --git a/nginx/server.conf b/nginx/server.conf index 48d4b306..776c5435 100644 --- a/nginx/server.conf +++ b/nginx/server.conf @@ -24,6 +24,7 @@ server { server_name grapheneos.org; root /var/www/html; + error_page 404 /404.html; charset utf-8; include /etc/nginx/snippets/security-headers.conf; @@ -65,6 +66,10 @@ server { default_type text/plain; } + location = /404.html { + internal; + } + location ~ "\.(ico|webmanifest)$" { include /etc/nginx/snippets/security-headers.conf; add_header Cache-Control "public, max-age=604800"; diff --git a/static/404.html b/static/404.html new file mode 100644 index 00000000..7b8d87ff --- /dev/null +++ b/static/404.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<html lang="en" prefix="og: http://ogp.me/ns#"> + <head> + <meta charset="utf-8"/> + <title>Page not found | GrapheneOS</title> + <meta name="description" content="Page not found on the GrapheneOS web server."/> + <meta name="theme-color" content="#212121"/> + <meta name="msapplication-TileColor" content="#ffffff"/> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + <meta name="twitter:site" content="@GrapheneOS"/> + <meta name="twitter:creator" content="@GrapheneOS"/> + <meta property="og:title" content="Page not found"/> + <meta property="og:description" content="Page not found on the GrapheneOS web server."/> + <meta property="og:type" content="website"/> + <meta property="og:image" content="https://grapheneos.org/opengraph.png"/> + <meta property="og:image:width" content="512"/> + <meta property="og:image:height" content="512"/> + <meta property="og:image:alt" content="GrapheneOS logo"/> + <meta property="og:site_name" content="GrapheneOS"/> + <link rel="icon" type="image/vnd.microsoft.icon" href="/favicon.ico"/> + <link rel="mask-icon" href="/mask-icon.svg" color="#1a1a1a"/> + <link rel="stylesheet" href="/grapheneos.css?18"/> + <link rel="manifest" href="/manifest.webmanifest"/> + </head> + <body> + <nav> + <ul> + <li><a href="/">GrapheneOS</a></li> + <li><a href="/install">Install</a></li> + <li><a href="/build">Build</a></li> + <li><a href="/usage">Usage</a></li> + <li><a href="/faq">FAQ</a></li> + <li><a href="/releases">Releases</a></li> + <li><a href="/source">Source</a></li> + <li><a href="/donate">Donate</a></li> + <li><a href="/contact">Contact</a></li> + </ul> + </nav> + <div id="content"> + <h1 id="page-not-found"> + <a href="#page-not-found">Page not found</a> + </h1> + <p>Page not found on the web server. If you think this is a mistake, please + <a href="https://github.com/GrapheneOS/grapheneos.org/issues">report an issue</a>.</p> + </div> + <footer> + <a href="/"><img src="/logo.png" width="512" height="512" alt=""/>GrapheneOS</a> + <ul id="social"> + <li><a href="https://twitter.com/GrapheneOS">Twitter</a></li> + <li><a href="https://github.com/GrapheneOS">GitHub</a></li> + <li><a href="https://reddit.com/r/GrapheneOS">Reddit</a></li> + </ul> + </footer> + </body> +</html> |
