Ich habe muy tiempo auf diese und ich kann keine Lösung erhalten. Ich brauche eine Möglichkeit, die gleiche URL, aber mit anderen Stammverzeichnis auf die gleiche Anwendung zeigen. Ich möchte keine Umschreibungen verwenden, da der Name der Root-Adresse von der Anwendung verarbeitet und überschrieben werden muss.Nginx-Aliase und dynamische Verzeichnisnamen
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/
Ich habe es geschafft, in nginx ein Alias Verzeichnis mit einem festen Namen vdirectory
und machen nginx das Ersuchen an fastcgi zu konfigurieren.
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;
}
}
Das obige funktioniert OK.
Da will ich nicht fest Root-Verzeichnis Namen, sondern willkürlich diejenigen verwenden, das ist, was ich bisher geschaffen habe:
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;
}
}
Unnötig zu sagen, es gibt 404. Es ist ein gutes Zeichen, weil es bedeutet, dass Regex den Pfad erkannt hat, aber die Anfrage nicht korrekt weitergeleitet wird.
Der einzige Unterschied zwischen den Arbeits config und der falschen ist /vdirectory
vs ~ ^/(.?)$
Ja. Das habe ich gesucht. Es ist so selten, eine so präzise Lösung zu bekommen. Tausend Dank –