Maison  >  Article  >  développement back-end  >  La configuration du routage nginx annule index.php

La configuration du routage nginx annule index.php

WBOY
WBOYoriginal
2023-05-22 21:00:071339parcourir

Sur les serveurs Web, nous rencontrons souvent des situations dans lesquelles des fichiers ou des répertoires spécifiques sont introuvables. À l'heure actuelle, nous utilisons souvent index.html ou index.php comme fichier par défaut pour résoudre ce problème. Dans Nginx, index.php est l'un des fichiers par défaut.

Cependant, parfois nous ne souhaitons pas afficher index.php dans l'URL. Cela a une certaine importance pour embellir l'URL ou améliorer la sécurité du site Web. Alors, comment annuler index.php dans Nginx ?

1. Modifier le fichier de configuration Nginx

Si vous avez installé Nginx et souhaitez annuler index.php, nous devons modifier le fichier de configuration Nginx. Dans le système Ubuntu, le chemin du fichier de configuration Nginx est "/etc/nginx/sites-available/default".

Trouvez la directive "index" dans le fichier, c'est-à-dire :

index index.html index.htm index.nginx-debian.html;

Nous devons supprimer le "index.php" qu'il contient et le remplacer par :

index index.html index.htm index.nginx-debian.html;

Ou vous voulez que index.php soit classé derrière, alors vous pouvez le placer à la fin :

index index.html index.htm index.nginx-debian.html index.php

2. Configurez l'hôte virtuel Nginx

Dans Nginx, chaque site Web aura un hôte virtuel. Un hôte virtuel peut fournir un environnement indépendant pour chaque site Web afin que différentes fonctions puissent être définies pour chaque site Web. Ici, nous devons configurer et annuler index.php pour chaque hôte virtuel.

1. Ouvrez le fichier de configuration de l'hôte virtuel Nginx

sudo nano /etc/nginx/sites-available/default

2. Annulez index.php dans l'hôte virtuel

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  root /var/www/html;

  # 列出默认文件
  index index.html index.htm;

  # 取消index.php,即移除它
  location / {
    try_files $uri $uri/ =404;
  }

  # 处理PHP脚本
  location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }

  # 处理网站资源
  location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
  }

  # 处理网站图标
  location /favicon.ico {
    access_log off;
    log_not_found off;
  }
}

Dans le fichier de configuration ci-dessus, nous avons annulé index.php et défini d'autres fichiers par défaut. En parallèle, dans le bloc location, nous utilisons la directive try_files pour vérifier si l'URL existe. Si elle n'existe pas, une erreur 404 sera renvoyée.

3. Modifiez nginx.conf de manière appropriée

Dans Nginx, vous pouvez également annuler l'affichage de index.php en modifiant nginx.conf. Nous devons ajouter une directive dans le bloc http :

http {
    ...

    # 将index.php从默认文件列表中删除
    index  index.html index.htm;

    # 取消index.php
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    ...
}

Dans la configuration ci-dessus, nous vérifions si l'URL existe en supprimant index.php de la liste de fichiers par défaut, puis dans le bloc location via la directive try_files, si c'est le cas n'existe pas, utilisez le fichier "index.php".

4. Annulez index.php via .htaccess

Si vous utilisez Nginx comme serveur Web et qu'il ne prend pas en charge les fichiers .htaccess, vous pouvez utiliser un fichier similaire : .user.ini. .user.ini est un fichier htaccess qui ne prend en charge que PHP. Grâce à lui, vous pouvez définir les informations de configuration PHP. Stockez simplement le fichier suivant sous .user.ini :

; PHP settings:
cgi.fix_pathinfo = 0
cgi.fix_pathinfo = false
cgi.fix_pathinfo = off

; nginx settings:
try_files $uri $uri/ /index.php?$query_string;

; User-defined settings:
index index.php index.html index.htm

Parmi eux, on vérifie si l'URL existe en essayant l'instruction de fichier try_files. Si elle n'existe pas, utilisez le fichier "index.php". En même temps, nous définissons d'autres fichiers par défaut.

5. Résumé

Cet article présente quatre méthodes possibles pour annuler index.php dans nginx. Vous pouvez utiliser une ou plusieurs de ces méthodes pour atteindre vos propres objectifs en fonction des besoins de votre propre site Web. Quelle que soit la méthode que vous utilisez, c’est très simple et rapide. Vous pouvez fournir une URL plus conviviale pour votre site Web afin d'attirer plus de visiteurs et d'améliorer l'effet SEO de votre site 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!

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
Article précédent:chaîne php en tableauArticle suivant:chaîne php en tableau