Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
# If folder does not exist
RewriteCond %{REQUEST_FILENAME} !-d
# and file exist
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
# uncomment the below rule if you want the "/" to be required
# otherwise leave as is
# RewriteRule ^([^/]+)/$ $1.php [L]
# internally show the content of filename.php
RewriteRule ^([^/]+)/?$ $1.php [L]
The above rule will:
- will not redirect if a folder exist
- will not redirect if the file does not exist
- will redirect what comes before the
/
if one is present as the file name
So it will work for all these examples:
http://domain.com/about/
http://domain.com/about
http://domain.com/contact/
http://domain.com/contact
If you want you can remove the ?
, like the commented rule, to make it accept only URL's that end with a /
.
http://domain.com/about/
http://domain.com/contact/
Now these are important step for the above to work:
- It must go into the
.htaccess
on your root folder for example /home/youraccount/public_html/.htaccess
- The Options before the rewrite rule are very important specially
-MultiViews
- The file must exist on the same place the
.htaccess
is for example in your case the about.php
file
- The PHP must be working obviously.