PHP Add Handler directive

Started by certforumz, December 19, 2020, 04:04:04 PM

Previous topic - Next topic

certforumz

http://www.velvetblues.com/web-development-blog/how-to-parse-html-files-as-php/

There are many reasons to parse HTML files as PHP. Some webmasters do it because they are converting an old static website into a dynamic website and don't want to lose pagerank. Other websites do it because search engines seem to favor web pages that have .html endings over those with dynamic .php endings. Or perhaps, you are doing it for security reasons... You don't want visitors to know what scripting language you use to run your website.

Fortunately, parsing HTML files as PHP easily accomplished on Linux Apache via the use of an htaccess file.

Making the HTACCESS File
If you've never seen or heard of an HTACCESS file before, don't be alarmed. Htaccess files are simple text files that are saved with a .htaccess extension. And they are easily created using a simple text editor such as Notepad or WordPad.

The Code
Believe it or not, you only need a single line of code to do the deed. Unfortunately, the code varies depending on your the configuration of your server. And unless your web host provides documentation, there is no way to know which code will work. But here are typical code samples below. (Note: If these code samples do not work, it may be necessary to consult your host.)

⇒ On web hosts that run two versions of PHP:

Some web hosts which run, or have run, two versions of PHP such as PHP4 and PHP5, usually have a PHP5 handler. The sample code below will parse all .html and .htm files as PHP. (This code has been tested on HostGator and InMotion hosting.)

AddHandler application/x-httpd-php5 .html .htm

⇒ On most other web hosts:

For hosts that only run a single version of PHP, the following code should work. (This code has been tested on Superb and LunaPage Web hosting.)

AddType application/x-httpd-php .html .htm

or, if the AddType directive does not work, you can use the AddHandler directive as follows:

AddHandler application/x-httpd-php .html .htm

or

AddHandler x-httpd-php .html .htm



Some web hosts, such as GoDaddy require both directives. So your code would look like this:

AddType application/x-httpd-php .htm .html
AddHandler x-httpd-php  .htm .html



As a last resort, you can also try this multi-line approach which uses the SetHandler directive:

<FilesMatch "\.(htm|html|php)$">
SetHandler application/x-httpd-php
</FilesMatch>

or

<FilesMatch "\.(htm|html|php)$">
SetHandler application/x-httpd-php5
</FilesMatch>

Complications
Sometimes, none of the above code samples will work. In this case, there are a few things that you can do:

Consult your web host to learn about the configuration of your server, and determine if some other code should be used.
Verify correct extension. If you are new to htaccess files, it is easy to make a mistake when creating them. The most common mistake is to save the file using the wrong extension. To fix this, you can easily change the filename after you upload to your server. Simply rename the file such that it has no name, but just an extension. So the file name should appear as ".htaccess".
Wait. Sometimes hosts have something called a server-side cache. This means that files take a while to 'go into effect'. If you are on GoDaddy, for example, you should expect to wait about 30 minutes.
Verify permissions. Make sure that your htaccess files has the right permissions. To view or change permissions, you will need to use the CHMOD utility.
Security & Performance Issues
There are some security issues that you should be aware of, especially if you are on a shared web hosting plan. First, if there is a problem with your HTACCESS file, your file may be able to be downloaded by your visitors or viewable as text. So if there is any sensitive data such as passwords or database information, it should never be stored in an HTML file. Second, if your web host changes the configuration of your server, it may affect the way in which your files are parsed. Third, if you ever plan on moving your website, your HTACCESS file may not be compatible with the new configuration. And finally, it is estimated that websites using this approach are marginally slower than websites that simply opt to use PHP files.

As a result, we recommend this as a great solution for small websites. (Small websites are those with less than 50 pages.) However, as your website increases in size, it would be a good idea to select a more robust solution that will be able to serve a website of any size.

Share or Subscribe

Why don't you subscribe to our feed so you can get the latest from this blog. You can also subscribe to this article's comments feed.

Tags: Apache, cache, htaccess file, Linux, PHP
Related Articles
WordPress Permalinks on GoDaddy Hosting
How To Compress Your Pages With GZIP And PHP
301 Redirects with .htaccess files on Linux Apache
What Is The Difference Between Static and Dynamic Websites?
Custom Error Pages with .htaccess Files