Ich habe die folgende nginx vhost Konfiguration:
server {
listen 80 default_server;
access_log /path/to/site/dir/logs/access.log;
error_log /path/to/site/dir/logs/error.log;
root /path/to/site/dir/webroot;
index index.php index.html;
try_files $uri /index.php;
location ~ \.php$ {
if (!-f $request_filename) {
return 404;
}
fastcgi_pass localhost:9000;
fastcgi_param SCRIPT_FILENAME /path/to/site/dir/webroot$fastcgi_script_name;
include /path/to/nginx/conf/fastcgi_params;
}
}
Ich möchte alle Anfragen umleiten, die nicht mit Dateien übereinstimmen, die in index.php vorhanden sind. Dies funktioniert derzeit für die meisten URIs einwandfrei, zum Beispiel:
example.com/asd
example.com/asd/123/1.txt
Weder noch asdoder asd/123/1.txtvorhanden, daher werden sie zu index.php umgeleitet, und das funktioniert einwandfrei. Wenn ich jedoch die URL eingebe example.com/asd.php, versucht sie zu suchen, asd.phpund wenn sie nicht gefunden werden kann, gibt sie 404 zurück, anstatt die Anforderung an zu senden index.php.
Gibt es eine Möglichkeit, asd.phpauch gesendet zu werden, index.phpwenn asd.phpes keine gibt?
error/404als Pfad verwendet werden soll