Nous avons donc un serveur de développement PHP où chaque développeur dispose d'un sous-domaine personnel tel que https://dev-abc.mysite.com avec une configuration NGINX correspondante.
Les développeurs vérifient une branche de notre répertoire dans des dossiers comme celui-ci :
- /var/www/html/dev-abc/branch-X
- /var/www/html/dev-abc/branch-Y
- /var/www/html/dev-abc/branch-Z
Modèle d'URL :
https://dev-abc.mysite.com/{BRANCH}/index.php/{MODULE}/{CLASSE}/?event={EVENT}&otherParamX=Y
{MODULE} est un dossier dans modules/
{CLASS} est un fichier de classe dans modules/{MODULE}
{EVENT} est une méthode à l'intérieur d'une classe à l'intérieur de modules/{MODULE}
L'accès aux branches se fait de la manière suivante : https://dev-abc.mysite.com/branch-X/index.php/report/invoice
Nous essayons simplement de réécrire l'URL en :
https://dev-abc.mysite.com/branch-X/report/invoice/
Pour tous les sous-répertoires sous leur sous-domaine.
Les configurations de NGINX ressemblent à ceci :
Trajectoire :
/etc/nginx/conf.d/dev-abc.conf
server {
server_tokens off;
listen 80;
autoindex off;
server_name dev-abc.mysite.com;
root /var/www/html/dev-a;
error_log /home/dev-abc/nginx-error.log notice;
include /etc/nginx/includes/dev_sandbox;
rewrite_log on;
}
Note : /etc/nginx/includes/dev_sandbox inclut beaucoup de choses pour les en-têtes et CORS, donc je ne le posterai pas à moins que ce soit nécessaire car il est long.
J'ai essayé ce qui suit :
Tentative 1 :
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
NGINX lance : ^(.+.php)(/.+)" ne correspond pas à "/index.php" Le navigateur affiche également "File not found" (fichier introuvable).
Tentative 2 :
location ~(.+)/(.+) {
try_files $uri $1/index.php/$2;
}
Travaux :
https://dev-abc.mysite.com/branch-X/report/
Ne fonctionne pas :
https://dev-abc.mysite.com/branch-X/report/invoice/
Tentative 3 :
location ~(.+)/(.+)/(.+) {
try_files $uri $1/control.php/$2/$3;
}
Travaux :
https://dev-abc.mysite.com/branch-X/report/invoice/
Ne fonctionne pas :
https://dev-abc.mysite.com/branch-X/report/
Lancers :
"/var/www/html/dev-abc/branch-X/report/index.php" est introuvable.