Masquer le nom de l'extension php de l'URL [duplicate]

Oct 08 2020

J'essaie de supprimer le nom de l'extension php ou html de l'url, mais après avoir parcouru de nombreux messages sur Internet et essayé les méthodes, mais mon URL ne fonctionne pas comme prévu. Ce que je veux, c'est xxx.com/xxx/home, au lieu de xxx.com/xxx/home.php

Ma configuration système

  • Serveur distant Ubuntu 20.04.1 LTS sur AWS

Voici les étapes que j'ai essayées jusqu'à présent:

  1. sudo a2enmod rewrite ==> activer la réécriture du module
  2. sudo vim apache2.conf ==> configurer l'apache2.conf
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
  1. créer un fichier .htaccess
Options -Indexes
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.php$ [NC] RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1.php [L]
  1. mettre le .htaccess sur mon diectory (/var/www/html/.htaccess)

Y a-t-il une mauvaise étape que j'ai faite manquer une configuration? Quelqu'un pourrait-il aider avec ce problème? Je vous remercie!

Réponses

1 NicoBleiler Oct 08 2020 at 15:11

Ajoutez ceci dans le .htaccess pour masquer les extensions de fichier php de l'url

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

Essayez le code ci-dessous dans votre .htaccessfichier

# 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]