Skip to content
Snippets Groups Projects
Commit 00a3c05c authored by Kamil Trzciński's avatar Kamil Trzciński
Browse files

Merge branch 'nice-404' into 'master'

Serve nice 404 page

![Screen_Shot_2016-02-26_at_15.34.10](/uploads/bfedef869fb6f51dec0f3c730069e42e/Screen_Shot_2016-02-26_at_15.34.10.png)

See merge request !4
parents 69b75ba9 e4cc703f
No related branches found
No related tags found
1 merge request!4Serve nice 404 page
Pipeline #
404.go 0 → 100644
package main
const predefined404 = `
<!DOCTYPE html>
<html>
<head>
<title>The page you're looking for could not be found (404)</title>
<style>
body {
color: #666;
text-align: center;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
margin: 0;
width: 800px;
margin: auto;
font-size: 14px;
}
h1 {
font-size: 56px;
line-height: 100px;
font-weight: normal;
color: #456;
}
h2 {
font-size: 24px;
color: #666;
line-height: 1.5em;
}
h3 {
color: #456;
font-size: 20px;
font-weight: normal;
line-height: 28px;
}
hr {
margin: 18px 0;
border: 0;
border-top: 1px solid #EEE;
border-bottom: 1px solid white;
}
</style>
</head>
<body>
<h1>
<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjIxMHB4IiBoZWlnaHQ9IjIxMHB4IiB2aWV3Qm94PSIwIDAgMjEwIDIxMCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpza2V0Y2g9Imh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaC9ucyI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDMuMy4yICgxMjA0MykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+U2xpY2UgMTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPgogICAgICAgIDxnIGlkPSJsb2dvIiBza2V0Y2g6dHlwZT0iTVNMYXllckdyb3VwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgMTAuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSJQYWdlLTEiIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPgogICAgICAgICAgICAgICAgPGcgaWQ9IkZpbGwtMS0rLUdyb3VwLTI0Ij4KICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iR3JvdXAtMjQiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEwNS4wNjE0LDE5My42NTUgTDEwNS4wNjE0LDE5My42NTUgTDE0My43MDE0LDc0LjczNCBMNjYuNDIxNCw3NC43MzQgTDEwNS4wNjE0LDE5My42NTUgTDEwNS4wNjE0LDE5My42NTUgWiIgaWQ9IkZpbGwtNCIgZmlsbD0iI0UyNDMyOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEwNS4wNjE0LDE5My42NTQ4IEw2Ni40MjE0LDc0LjczMzggTDEyLjI2ODQsNzQuNzMzOCBMMTA1LjA2MTQsMTkzLjY1NDggTDEwNS4wNjE0LDE5My42NTQ4IFoiIGlkPSJGaWxsLTgiIGZpbGw9IiNGQzZEMjYiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4yNjg1LDc0LjczNDEgTDEyLjI2ODUsNzQuNzM0MSBMMC41MjY1LDExMC44NzMxIEMtMC41NDQ1LDExNC4xNjkxIDAuNjI4NSwxMTcuNzgwMSAzLjQzMjUsMTE5LjgxNzEgTDEwNS4wNjE1LDE5My42NTUxIEwxMi4yNjg1LDc0LjczNDEgTDEyLjI2ODUsNzQuNzM0MSBaIiBpZD0iRmlsbC0xMiIgZmlsbD0iI0ZDQTMyNiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTEyLjI2ODUsNzQuNzM0MiBMNjYuNDIxNSw3NC43MzQyIEw0My4xNDg1LDMuMTA5MiBDNDEuOTUxNSwtMC41NzY4IDM2LjczNzUsLTAuNTc1OCAzNS41NDA1LDMuMTA5MiBMMTIuMjY4NSw3NC43MzQyIEwxMi4yNjg1LDc0LjczNDIgWiIgaWQ9IkZpbGwtMTYiIGZpbGw9IiNFMjQzMjkiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMDUuMDYxNCwxOTMuNjU0OCBMMTQzLjcwMTQsNzQuNzMzOCBMMTk3Ljg1NDQsNzQuNzMzOCBMMTA1LjA2MTQsMTkzLjY1NDggTDEwNS4wNjE0LDE5My42NTQ4IFoiIGlkPSJGaWxsLTE4IiBmaWxsPSIjRkM2RDI2Ij48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTk3Ljg1NDQsNzQuNzM0MSBMMTk3Ljg1NDQsNzQuNzM0MSBMMjA5LjU5NjQsMTEwLjg3MzEgQzIxMC42Njc0LDExNC4xNjkxIDIwOS40OTQ0LDExNy43ODAxIDIwNi42OTA0LDExOS44MTcxIEwxMDUuMDYxNCwxOTMuNjU1MSBMMTk3Ljg1NDQsNzQuNzM0MSBMMTk3Ljg1NDQsNzQuNzM0MSBaIiBpZD0iRmlsbC0yMCIgZmlsbD0iI0ZDQTMyNiI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTE5Ny44NTQ0LDc0LjczNDIgTDE0My43MDE0LDc0LjczNDIgTDE2Ni45NzQ0LDMuMTA5MiBDMTY4LjE3MTQsLTAuNTc2OCAxNzMuMzg1NCwtMC41NzU4IDE3NC41ODI0LDMuMTA5MiBMMTk3Ljg1NDQsNzQuNzM0MiBMMTk3Ljg1NDQsNzQuNzM0MiBaIiBpZD0iRmlsbC0yMiIgZmlsbD0iI0UyNDMyOSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8L2c+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=" /><br />
404
</h1>
<h3>The page you're looking for could not be found.</h3>
<hr/>
<p>Make sure the address is correct and that the page hasn't moved.</p>
</body>
</html>
`
Loading
Loading
@@ -169,7 +169,7 @@ func (d *domain) serveFromGroup(w http.ResponseWriter, r *http.Request) {
}
 
// Serve generic not found
http.NotFound(w, r)
http.Error(w, predefined404, http.StatusNotFound)
}
 
func (d *domain) serveFromConfig(w http.ResponseWriter, r *http.Request) {
Loading
Loading
@@ -183,7 +183,8 @@ func (d *domain) serveFromConfig(w http.ResponseWriter, r *http.Request) {
return
}
 
http.NotFound(w, r)
// Serve generic not found
http.Error(w, predefined404, http.StatusNotFound)
}
 
func (d *domain) ensureCertificate() (*tls.Certificate, error) {
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment