Maison  >  Article  >  développement back-end  >  Comment supprimer les extensions .php et .html des URL à l'aide de NGINX ?

Comment supprimer les extensions .php et .html des URL à l'aide de NGINX ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-16 19:42:03911parcourir

How to Remove .php and .html Extensions from URLs Using NGINX?

Comment supprimer les extensions .php et .html des URL à l'aide de NGINX

Introduction

Lors de la diffusion de contenu Web, il peut être souhaitable de masquer les extensions de fichiers de l'URL pour des raisons esthétiques ou de sécurité. Ceci peut être réalisé en utilisant NGINX, un logiciel de serveur Web populaire.

Problème

L'objectif est de supprimer les extensions .php et .html des URL tout en conservant leurs fonctionnalités. . Par exemple, l'URL http://www.mydomain.com/indexhtml.html doit être affichée sous la forme http://www.mydomain.com/indexhtml et http://www.mydomain.com/indexphp.php doit être affiché sous la forme http://www.mydomain.com/indexphp.

Solution

La configuration NGINX suivante peut être utilisée pour obtenir la configuration souhaitée résultat :

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;
}

Explication

  • emplacement /: Ce bloc s'applique à toutes les requêtes adressées au répertoire racine du site.
  • try_files : Cette directive tente de trouver le fichier spécifié par $uri. Si le fichier n'existe pas, il essaie de trouver $uri.html ou un répertoire du même nom. Si aucun des deux n'existe, il transmettra la requête au bloc d'emplacement @extensionless-php.
  • index : Cette directive spécifie les fichiers par défaut à servir lorsque $uri pointe vers un répertoire.
  • emplacement ~ .php$: Ce bloc correspond aux requêtes se terminant par .php.
  • try_files $uri =404: Cette directive renvoie une erreur 404 si l'URI est exactement un fichier .php (hors répertoires).
  • location @extensionless-php : Ce bloc est l'endroit où le recâblage se produit.
  • rewrite : Cette directive réécrit la requête dans l'URI avec l'extension .php ajoutée. Le dernier indicateur empêche une réécriture ultérieure.

En implémentant cette configuration, les extensions .php et .html seront automatiquement supprimées des URL, offrant une expérience de navigation propre et conviviale.

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