Access pages without the php extension using .htaccess
Heads up! This post was written in 2012, so it may contain information that is no longer accurate. I keep posts like this around for historical purposes and to prevent link rot, so please keep this in mind as you're reading.
— Cory
There are a number of ways to make "clean URLs" work on your site, but this one is pretty straight forward. It allows you to access /any-page.php
by simply going to /any-page
. Just place the following into your .htaccess
file (and make sure that mod_rewrite
is enabled):
RewriteEngine On
RewriteCond %{SCRIPT\_FILENAME} !-d
RewriteRule ^(\[^.\]+)$ $1.php \[NC,L\]
The nice thing about this is that it doesn't affect querystrings. With this solution, both of these URLs are effectively the same:
http://example.com/page.php?id=123
http://example.com/page?id=123
Of course, the caveat is that you don't have "clean querystrings", but it's a reasonable trade-off between "clean" and configuration.