Webserver handlers decide the way each file functions on the server.
And the best way to include custom file support is to add cPanel Apache handlers.
However, adding improper handlers often results in website errors.
That’s why we often receive requests to enable cPanel Apache Handlers and fix its errors as a part of Service Management Services.
Today, let’s know how our Support Engineers enable the cPanel Apache handlers and fix related errors.
Why cPanel Apache Handlers?
cPanel Apache handlers instruct what action Apache must take when a file is processing.
This is useful when you want to use any extensions for the files that are not defined by default in Apache.
The common file extensions available are .cgi, .pl, .plx, .ppl, .perl, and .shtml.
Now, let’s see how our Support Engineers create a custom Apache handler in cPanel.
Creating a cPanel Apache Handler
1. We access the option cPanel >> Advanced >> Apache Handlers
2. Then enter the custom file extension in the Extension(s) field. We always add a . before the extension name.
3. Enter the Apache handler in the Handler field.
4. Click on the Add button. That’s it.
In a similar way, a custom Apache handler can also be created by adding the following lines in .htaccess file. The default location of this rewrite file is /home/user/public_html.
AddHandler handler .extension
Here, we replace the handler with the desired handler and .extension with the desired extension. The Apache handler creation page appears as below:
For example, the below directives will cause requests for the files with the HTML extension to trigger the launch of the footer.pl CGI script.
Action add-footer /cgi-bin/footer.pl AddHandler add-footer .html
Another example, the below directives will enable the send-as-is handler, which is used for files that contain their own HTTP headers. All files in the /web/htdocs/abc/ directory will be processed by the send-as-is handler, regardless of their filename extensions.
<Directory "/web/htdocs/abc"> SetHandler send-as-is </Directory>
How we fix common cPanel Apache Handler errors
Now, let’s see the reasons for cPanel Apache handler related errors and how our Support Engineers fixed them.
1. Handler inheritance error
One of customer approached us with a Handler inheritance error.
He added the below Add handler code in the .htaccess file of public_html. However, this was affecting the subdomain whose path was within the public_html. He didn’t want this to happen.
AddHandler server-parsed .html
So our Support Engineers suggested adding the below code in the .htaccess file of the respective folder of the subdomain. This prevented the inheritance of the apache handler from the parent directory.
Finally, this fixed the error and the subdomain worked fine.
2. PHP handler code error
In a similar way, bad handlers also create errors with the websites.
For instance, when adding incorrect Handler code in .htaccess file may cause the website to download a file, instead of displaying it. Removing that code resulted in an internal server error.
Our Support Engineers checked the .htaccess file and found the below incorrect codes in it.
AddType application/x-httpd-php5 .php .html
Therefore, to fix the error, we added the code as:
AddHandler application/x-httpd-php5 .php
AddHandler tells the server how to handle each file type. AddType tells the server what MIME type to give to each client. Since the PHP handler was in use here, it was the AddHandler that was suitable.
[Need more assistance with Apache Handlers in cPanel? We’ll help you.]
In short, the cPanel Apache Handlers instructs the webserver to make a file work in a particular manner. Today, we saw how our Support Engineers created an Apache Handler in cPanel servers and fixed the errors related to it.