I want www.example.com/about.php to just be www.example.com/about
I created a .htaccess file and put it in the root of my server. I use shared linux hosting. PHP version 5.2
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php
It seems that this code should work correctly, but for some reason this is not the case. I get a 404 error when I try to go to a page without the .php extension.
Here is my markup too:
<nav> <div class="container"> <ul> <li><a href="index.php" <?php if (strpos($_SERVER['PHP_SELF'], 'index.php')) echo 'class="current-nav"';?>>home</a></li> <li><a href="about.php">about</a></li> <li><a href="services">our services</a></li> <li><a href="portfolio" <?php if (strpos($_SERVER['PHP_SELF'], 'portfolio.php')) echo 'class="current-nav"';?>>portfolio</a></li> <li><a href="testimonials" <?php if (strpos($_SERVER['PHP_SELF'], 'testimonials.php')) echo 'class="current-nav"';?>>testimonials</a></li> <li><a href="contact" <?php if (strpos($_SERVER['PHP_SELF'], 'contact.php')) echo 'class="current-nav"';?>>Contact</a></li> <li><a href="order" <?php if (strpos($_SERVER['PHP_SELF'], 'order.php')) echo 'class="current-nav"';?>><strong>Free Quote</strong></a></li> </ul> </div> </nav>
You can see that I tried using the php extension in the link, and also tried without it. Links with the php extension go to the page but do not remove the extension.
I did a test to find out if module_rewrite is enabled by inserting some garbage and returning a 500 error.
Adam pflantzer
source share