Nginx: Custom Error 403 Page Not Working with IP Deny Configuration

I block or deny access based on the host name or IP address of the client visiting website under nginx web server. I want to display customized e403.html error page, but it doesn't appear to be working. Nginx always displays the built-in, hardcoded "403 Forbidden" error message. Here is my configuration:

.....
...
deny 1.2.3.4;
deny 91.212.45.0/24;
deny 91.212.65.0/24;
.....
...
error_page 403 /e403.html;
location = /e403.html {
root html;
}

How do I fix this problem and display custom error 403 page under nginx server?

The deny parameter will block all access including access to /e403.html file. All you need to add is allow all; inside location directive as follows. Edit /usr/local/etc/nginx/nginx.conf or /etc/nginx/nginx.conf, enter:
# vi /usr/local/etc/nginx/nginx.conf
Update it as follows:

 error_page 403 /e403.html;
location = /e403.html {
root html;
allow all;
}

The above should fix the problem. Once done, reload the nginx web server:
# /usr/local/nginx/sbin/nginx -t && # /usr/local/nginx/sbin/nginx -s reload

  • 6 Users Found This Useful
Was this answer helpful?

Related Articles

All About YUM

up2date command was part of RHEL v4.x or older version. You need to use yum command to update...

CentOS / Redhat: Create Software RAID 1 Array

RAID devices are virtual devices created from two or more real block devices. Linux supports...

Bash Shell Generate Random Numbers

How do I create or generate random numbers (sequence of numbers that lack any pattern), under...

CentOS / Redhat: Install KVM Virtualization Software

Required Packages You must install the following packages: kmod-kvm : kvm kernel module(s)...

CentOS / Redhat: Install nginx As Reverse Proxy Load Balancer

nginx is a Web and Reverse proxy server. Nginx used in front of Apache Web servers. All...