Ich suche einen Weg, um Nginx mit der PHP-Anwendung zu konfigurieren.
Es sollte statische Dateien liefern, falls vorhanden. Wenn sie sich im Unterordner / dev befinden, sind sie nur für die Version 127.0.0.1 zulässig.
Eine URL, die keine statische Datei ist, sollte über den dritten Location Block zu PHP umgeleitet werden.
Wenn dieses uri, das zu php geht, mit / dev beginnt, möchte ich, dass das uri ohne das / dev umgeschrieben wird und das fastcgi_param APP_ENV auf "dev" gesetzt wird. (Und auch für alle außer 127.0.0.1 gesperrt sein)
Wenn diese URI nicht mit / dev beginnt, möchte ich fastcgi_param APP_ENV auf "prod" setzen, ohne es neu zu schreiben.
server {
root /var/www/homeserver/public;
location /dev {
allow 127.0.0.1;
deny all;
# This has no effect on the third location block:
fastcgi_param APP_ENV dev;
# This is only OK for when try_files pass the uri to /index.php
rewrite ^/dev(.*)$ /$1 last;
try_files $uri /index.php$is_args$args;
}
location / {
# This has no effect on the third location block:
fastcgi_param APP_ENV prod;
try_files $uri /index.php$is_args$args;
}
# Front controler :
location ~ ^/index\.php(/|$) {
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
location ~ \.php$ {
return 404;
}
}
Ich habe versucht, dies mit "if" -Anweisungen zu lösen. Ohne Erfolg.
Wie kann ich es konfigurieren?