Maison  >  Article  >  développement back-end  >  Comment supprimer les extensions de fichiers des URL dans NGINX ?

Comment supprimer les extensions de fichiers des URL dans NGINX ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 14:02:02188parcourir

How to Remove File Extensions from URLs in NGINX?

Suppression des extensions de fichiers des URL dans NGINX

Pour présenter une structure d'URL plus propre, vous souhaitez supprimer ".php" et ".html " de toutes les URL de votre site Web.

Au départ, vous avez supprimé avec succès les extensions ".html" en utilisant ce qui suit configuration :

location / {
    root   html;
    index  index.html index.htm index.php;
    try_files $uri.html $uri/ =404; 
}

Cependant, cette configuration ne fonctionne pas pour les extensions ".php". Pour résoudre ce problème, vous pouvez modifier votre fichier de configuration NGINX comme suit :

location / {
    try_files $uri $uri.html $uri/ @extensionless-php;
    index index.html index.htm index.php;
}

location ~ \.php$ {
    try_files $uri =404;
}

location @extensionless-php {
    rewrite ^(.*)$ .php last;
}

Cette configuration supprimera désormais les extensions ".php" et ".html" de toutes les URL :

  • try_files $uri $uri.html $uri/ vérifie l'URL d'origine, l'URL avec une extension ".html" et l'URL en tant que répertoire.
  • Si aucun de ces fichiers n'existe, il transmet la requête à l'emplacement @extensionless-php.
  • try_files $uri =404; dans le bloc location ~ .php$ renvoie explicitement une erreur 404 pour les URL se terminant par ".php".
  • Enfin, l'emplacement @extensionless-php réécrit l'URL pour ajouter l'extension ".php" si ce n'est pas le cas. n'existent pas déjà.

Redémarrez NGINX après avoir effectué ces modifications, et vos URL seront désormais présentées sans les extensions de fichier.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn