Entfernen der .php-Dateierweiterung mit der .htaccess-Datei

Ich möchte, dass www.example.com/about.php nur www.example.com/about ist

Ich habe eine .htaccess-Datei erstellt und sie im Stammverzeichnis meines Servers abgelegt. Ich verwende Linux Shared Hosting. PHP Version 5.2

<code>RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
</code>

Es scheint, dass dieser Code richtig funktionieren sollte, aber aus irgendeinem Grund nicht. Ich erhalte die Fehlermeldung 404, wenn ich versuche, zu einer Seite ohne die Erweiterung .php zu navigieren.

Hier ist auch mein Markup:

<code><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--> 
</code>

Sie können sehen, dass ich versucht habe, die PHP-Erweiterung im Link zu verwenden und es auch ohne versucht habe. Die Links mit der PHP-Erweiterung gehen auf die Seite, aber entfernen Sie die Erweiterung nicht.

Ich habe einen Test durchgeführt, um festzustellen, ob module_rewrite aktiviert ist, indem ich etwas Müll hineingegeben und einen 500-Fehler zurückgegeben habe.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage