www.example.com/about.phpをwww.example.com/aboutにしたい
.htaccessファイルを作成し、サーバーのルートに配置しました。Linux共有ホスティングを使用しています。PHPバージョン5.2
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
このコードは正しく機能するはずですが、何らかの理由で機能しません。拡張子が.phpのないページに移動しようとすると、404エラーが発生します。
これが私のマークアップでもあります:
<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="#">client area</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><!--/navigation-->
リンクにあるphp拡張機能を使用してみましたが、使用せずに試したことがわかります。php拡張子のリンクはページに移動しますが、拡張子を削除しないでください。
ガベージを入れて500エラーを返すことにより、module_rewriteが有効になっているかどうかを確認するためのテストを行いました。