Maison > Article > développement back-end > Pourquoi ne puis-je pas masquer mon extension de fichier .php avec .htaccess ?
Masquer l'extension de fichier .php avec .htaccess : conseils de dépannage
Malgré les instructions suivantes pour masquer l'extension de fichier .php à l'aide de .htaccess, vous vous rencontrez des difficultés. Examinons le problème et proposons une solution révisée.
Votre code .htaccess initial a tenté de réécrire les URL dans un répertoire "dossier" spécifique. Cependant, il semble incomplet, car il lui manque la directive RewriteCond correspondante. Pour résoudre ce problème, le code modifié suivant devrait fonctionner :
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^folder/([a-zA-Z_\-0-9]+)/?$ /folder/.php </IfModule>
La ligne RewriteCond garantit que la règle n'est appliquée que si le fichier demandé n'existe pas (c'est-à-dire qu'il ne s'agit pas d'un fichier statique).
De plus, pour gérer correctement divers scénarios, pensez à utiliser un code .htaccess plus complet comme celui suggéré dans la réponse acceptée :
RewriteEngine On # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/folder/ [R=301,L] # Redirect external .php requests to extensionless URL RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ RewriteRule ^(.+)\.php$ http://example.com/folder/ [R=301,L] # Resolve .php file for extensionless PHP URLs RewriteRule ^([^/.]+)$ .php [L]
Ce code cache non seulement l'extension .php mais également gère les barres obliques finales, les requêtes .php externes et résout en interne les fichiers .php pour les URL sans extension.
N'oubliez pas de vérifier que le fichier .htaccess est placé dans le répertoire racine de votre projet et vérifiez les autorisations du fichier pour vous assurer qu'il est lisible par le serveur web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!