J'ai passé muy tiempo à ce sujet et je ne peux pas obtenir une solution. J'ai besoin d'un moyen de pointer la même URL mais avec un répertoire racine différent pour la même application. Je ne veux pas utiliser de réécriture car le nom de rootoy root doit être traité par l'application et la réécriture le supprime.alias nginx et les noms de répertoires dynamiques
http://www.host.com/a/ --> /var/www/html/project/
http://www.host.com/b/ --> /var/www/html/project/
http://www.host.com/c/ --> /var/www/html/project/
J'ai réussi à configurer dans nginx un répertoire alias avec un fixe nom vdirectory
et faire nginx transmet la demande à FastCGI.
location /vdirectory {
alias /var/www/html/project/;
try_files $uri $uri/ /vdirectory/index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Ce qui précède fonctionne correctement.
Depuis que je ne veux pas utiliser des noms de répertoire racine fixe, mais les arbitraires, ce que je suis parvenu à ce jour:
location ~ ^/(.?)$ {
alias /var/www/html/project/;
try_files $uri $uri/ /$1/index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
}
Inutile de dire, il retourne 404. Il est un bon signe car cela signifie que regex a reconnu le chemin, mais la requête n'est pas transmise correctement.
La seule différence entre la configuration de travail et le mauvais est /vdirectory
vs ~ ^/(.?)$
Oui. C'est ce que je cherchais. C'est tellement rare d'avoir une solution aussi précise. Merci un million –