Nginx Kategorieseiten 404 not found

Hallo zusammen,

ich habe nginx geschaltet. Jetzt die Startseite und Produktseiten funktionieren, die Kategorieseiten zeigen aber 404 Fehler. SEO-Einstellungen habe ich nicht geändert. Wie soll ich die config-Datei anpassen?

server {
    listen 80;

    index index.php index.html;
    server_name new.moebel-zone.de;
    root /new/public;

    location /recovery/install {
        index index.php;
        try_files $uri /recovery/install/index.php$is_args$args;
    }

    location /recovery/update/ {
        location /recovery/update/assets {
        }
        if (!-e $request_filename){
            rewrite . /recovery/update/index.php last;
        }
    }

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_buffers 8 16k;
        fastcgi_buffer_size 32k;
        client_max_body_size 24M;
        client_body_buffer_size 128k;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        http2_push_preload on;
    }
}

Was sagen die server logs?

Ich habe das Problem bereits wie folgt gelöst…

  1. Ich habe bemerkt, dass die Kategorieseiten doch erreichbar sind, nur ohne Trailing Slash.

  2. SEO Einstellungen geändert, damit Kategorien ohne Slash funktionieren:
    {% for part in category.seoBreadcrumb %}{{ part|lower}}{% if not loop.last %}/{% endif %}{% endfor %}

  3. Zurück Apache geschaltet und 301 Weiterleitung eingerichtet, da mein Hosting netcup keine eigene Konfiguration für nginx unterstützt. Ganz wichtig - in .htaccess muss man vor den Standardzeilen von Shopware schreiben, sonst funktioniert nicht.

     # Kein Trailing Slash
     RewriteEngine On
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)/$ /$1 [R=301,NC,L]
    
     # BEGIN Shopware
1 „Gefällt mir“

Hallo @pavloniss

Soeben stehe ich vor dem selben Problem und versuchte gerade Deinen Tipp umzusetzen. Leider funktioniert es bei mir nicht wie gewünscht. Ich habe unter Einstellungen / SEO bei den Kategorien {% for part in category.seoBreadcrumb %}{{ part|lower}}{% if not loop.last %}/{% endif %}{% endfor %} eingefügt und wie von Dir empfohlen:

 # Kein Trailing Slash
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)/$ /$1 [R=301,NC,L]

vor # BEGIN Shopware gesetzt. Das ganze bewirkt lediglich, dass Kategorien ohne / dargestellt werden, was natürlich zu einem 404 Error führt. Eigentlich wollte ich lediglich, dass Kategorien nach wie vor mit einem / am Ende dargestellt werden, jedoch auch Zugriffe auf Kategorien ohne / am Ende umgeleitet werden und kein 404 generieren.

Funktioniert Deine Konfiguration nach wie vor?