Maison >développement back-end >tutoriel php >Comment puis-je configurer Nginx pour servir des sous-dossiers imbriqués à partir de différents URI ?

Comment puis-je configurer Nginx pour servir des sous-dossiers imbriqués à partir de différents URI ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-29 02:28:13153parcourir

How Can I Configure Nginx to Serve Nested Subfolders from Different URIs?

Configuration de l'emplacement Nginx pour les sous-dossiers imbriqués

Dans le contexte de la configuration Nginx, l'accès aux sous-dossiers avec des URI spécifiques peut être difficile. C'est là que les directives d'emplacement entrent en jeu.

Considérez le scénario suivant : vous disposez d'une structure de répertoires telle que /var/www/mysite/ contenant deux sous-dossiers, /static et /manage. Vous souhaitez accéder à /static via l'URI racine (par exemple, "http://example.org/") et /manage via "/manage" (par exemple, "http://example.org/manage").

Décomposons la configuration Nginx fournie :

server {
  listen 80;
  server_name example.org;
  ...

  # Static folder location
  location / {
    root $uri/static/;
    index index.html;
  }

  # Manage folder location (attempt 1)
  location /manage {
    root $uri/manage/public;
    try_files $uri /index.php$is_args$args;
  }

  # PHP processing location
  location ~ \.php {
    ...
  }
}

Bien que l'emplacement / fonctionne correctement, l'emplacement /manage échoue. C'est parce que la directive racine est incorrecte. Pour utiliser un sous-dossier dans un alias, l'alias doit être utilisé à la place de root.

L'emplacement mis à jour pour /manage doit être le suivant :

location ^~ /manage {
  alias /var/www/mysite/manage/public;
  ...
}

Avec ces modifications, Nginx servira correctement les fichiers statiques de /static à l'URI racine et le contenu dynamique de /manage à "/manage".

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