Verstecke den Namen der PHP-Erweiterung vor der URL [Duplikat]

Oct 08 2020

Ich versuche, den Erweiterungsnamen von PHP oder HTML aus der URL zu entfernen, aber nachdem ich viele Beiträge im Internet durchgesehen und die Methoden ausprobiert habe, funktioniert meine URL nicht wie erwartet. Was ich möchte, ist xxx.com/xxx/home anstelle von xxx.com/xxx/home.php

Meine Systemkonfiguration

  • Ubuntu 20.04.1 LTS Remote Server auf aws

Hier sind die Schritte, die ich bisher versucht habe:

  1. sudo a2enmod rewrite ==> aktiviere das Umschreiben von Modulen
  2. sudo vim apache2.conf ==> konfiguriere die apache2.conf
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
  1. Erstellen Sie eine .htaccess-Datei
Options -Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.php$ [NC] RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1.php [L]
  1. Setze den .htaccess in mein Verzeichnis (/var/www/html/.htaccess).

Gibt es einen falschen Schritt, bei dem ich eine Konfiguration verpasst habe? Könnte jemand bei diesem Problem helfen? Vielen Dank!

Antworten

1 NicoBleiler Oct 08 2020 at 15:11

Fügen Sie dies im .htaccess hinzu, um die PHP-Dateierweiterungen vor der URL zu verbergen

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Googlian Oct 08 2020 at 15:14

Versuchen Sie den folgenden Code in Ihrer .htaccessDatei

# Run Php without filename extension
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

# Return 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]