Hallo zusammen,
ich erstelle gerade eine kleine PHP Seite mit mittels dem Laminas Framework. Jedoch habe ich dabei ein Problem mit dem Routing. Dies funktioniert nicht. Wenn ich über den url Helper einen Link erstelle zu einer Route, ist der Link da, aber wenn ich darauf klicke, bekomme ich "A 404 error occurred Page not found The requested URL could not be matched by routing. No Exception available". Dazu hier die genauen Daten:
Es läuft unter WSL2, Debian. Als Webserver läuft Nginx, für PHP benutze ich PHP-FPM (v7.4).
Meine Nginx Config:
server {
listen 80;
server_name _;
root /var/www/modliste/public;
index index.html index.htm index.php;
gzip on;
access_log /var/log/nginx/default.access.log;
error_log /var/log/nginx/default.error.log;
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
}
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize=20M \n post_max_size=20M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
client_max_body_size 20M;
}
}
In der module.config.php des Module habe ich folgende Routing Config drine:
'router' => [
'routes' => [
'home' => [
'type' => Segment::class,
'options' => [
'route' => '/[/:action][/:mod]',
'constraints' => [
'action' => '[a-zA-Z][a-zA-Z0-9_-]+',
'mod' => '[a-zA-Z][a-zA-Z0-9_-]+',
],
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
],
],
Meines Erachtens, müsste doch damit die Url "localhost/update/1" eigentlich klappen? Ich stehe da glaube ich Irgendwo auf dem Schlauch, ich glaube es liegt an dem Typ.
Interessanterweise, gibt es derzeit auch noch das Problem, dass der Url Helper nach der Action noch einen extra Slash macht. D.h. die Route sieht dann so aus "localhost/update//4", was natürlich einen Fehler auswirft. Dies habe ich erstmal unterbunden indem ich mittels regex dies raushole... Sollte aber auch nicht so sein.
Hat da wer eine Idee wo die Probleme dran hängen könnten? Bin für jede Hilfe dankbar!
Isaac