Reusable static error pages for web servers.
- Easy way (clone directly on the server):
cd /tmp
git clone https://github.com/ithubdeveloper/error-pages.git
sudo mkdir -p /var/www/error-pages
sudo cp /tmp/error-pages/*.html /var/www/error-pages/
sudo chown -R root:root /var/www/error-pages
sudo chmod 644 /var/www/error-pages/*.html- Or copy files manually to your server:
sudo mkdir -p /var/www/error-pages
sudo cp *.html /var/www/error-pages/
sudo chown -R root:root /var/www/error-pages
sudo chmod 644 /var/www/error-pages/*.html-
Configure your web server using the examples below.
-
Reload server config and test with curl.
Create a snippet file:
# /etc/nginx/snippets/error-pages.conf
error_page 403 /error-pages/403.html;
error_page 404 /error-pages/404.html;
error_page 429 /error-pages/429.html;
error_page 500 /error-pages/500.html;
error_page 502 /error-pages/502.html;
error_page 503 /error-pages/503.html;
error_page 504 /error-pages/504.html;
location /error-pages/ {
alias /var/www/error-pages/;
internal;
}Then include it inside your server block:
server {
listen 80;
server_name example.com;
root /var/www/html;
include /etc/nginx/snippets/error-pages.conf;
# Optional maintenance toggle
# if (-f /var/www/error-pages/maintenance.flag) {
# return 503;
# }
# error_page 503 /error-pages/maintenance.html;
}Reload Nginx:
sudo nginx -t
sudo systemctl reload nginx<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
Alias /error-pages/ "/var/www/error-pages/"
<Directory "/var/www/error-pages">
Options -Indexes
AllowOverride None
Require all granted
</Directory>
ErrorDocument 403 /error-pages/403.html
ErrorDocument 404 /error-pages/404.html
ErrorDocument 429 /error-pages/429.html
ErrorDocument 500 /error-pages/500.html
ErrorDocument 502 /error-pages/502.html
ErrorDocument 503 /error-pages/503.html
ErrorDocument 504 /error-pages/504.html
# Optional maintenance page
# ErrorDocument 503 /error-pages/maintenance.html
</VirtualHost>Reload Apache:
sudo apachectl configtest
sudo systemctl reload apache2curl -I http://example.com/non-existing-page
curl -s http://example.com/non-existing-page | head- instructions.html contains a full setup guide in page format.
- On Nginx, keep /error-pages/ internal to avoid direct public browsing.
- On Apache, keep directory listing disabled with Options -Indexes.