Maison >développement back-end >tutoriel php >Comment puis-je configurer Nginx pour servir les sous-dossiers différemment ?

Comment puis-je configurer Nginx pour servir les sous-dossiers différemment ?

DDD
DDDoriginal
2024-11-22 10:21:10274parcourir

How Can I Configure Nginx to Serve Subfolders Differently?

Configuration de l'emplacement Nginx pour les sous-dossiers

Dans la configuration Nginx, la gestion de l'accès aux sous-répertoires est cruciale pour organiser efficacement le contenu du site Web. Prenons un scénario dans lequel vous disposez de deux sous-dossiers, "/static" et "/manage", dans un répertoire racine Web.

Problème :

Vous devez configurer Nginx pour fournir l'accès à ces sous-dossiers comme suit :

  • Dossier "/static" accessible à l'URI racine (par exemple, http://example.org/)
  • Dossier "/manage" accessible dans "/manage" (par exemple, http://example.org/manage)

Solution :

Pour résoudre ce problème, vous devez utiliser la directive alias pour le "/manage" subfolder :

server {
    # ... (unchanged configuration)
    
    location ^~ /manage {
        alias /var/www/mysite/manage/public;
        index index.php;
        
        if (!-e $request_filename) { rewrite ^ /manage/index.php last; }
        
        location ~ \.php$ {
            if (!-f $request_filename) { return 404; }
            fastcgi_pass 127.0.0.1:9000;
            
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        }
    }
}

Solution alternative utilisant Root :

Dans certains cas, vous pouvez envisager d'utiliser la directive root au lieu de l'alias. Cependant, il nécessite un bloc d'emplacement imbriqué et est généralement moins efficace pour la gestion des sous-dossiers.

Remarques supplémentaires :

  • Le modificateur ^~ garantit que l'emplacement du préfixe a priorité sur les emplacements des expressions régulières.
  • Les directives try_files et alias ne peuvent pas être utilisées ensemble en raison d'un bug.
  • La directive if doit être manipulée avec prudence pour éviter des comportements inattendus.

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