Wordpress und nginx alle Seiten funktionieren gut, außer für nicht vorhandene .php

Wordpress und nginx alle Seiten funktionieren gut, außer für nicht vorhandene .php

Ich habe meine WordPress-Website auf Nginx konfiguriert und alles funktioniert einwandfrei, außer für nicht vorhandene .php-Seiten. Diese geben die standardmäßige 404-Seite von Nginx zurück. Warum?

# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;

root /var/www/vpsproject.site;

# Add index.php to the list if you are using PHP
index index.php;

server_name vpsproject.site;


location / {
    #try_files $uri $uri/ =404;

    try_files $uri $uri/ /index.php$is_args$args;



}


# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php7.4-fpm:
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}

      # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
            deny all;
    }
    # deny access to .git related folders or files
    #
    location ~ /\.git {
            deny all;
    }

Antwort1

Dies liegt daran, dass nginx die Dateianforderungen .phpan den PHP-FPM-Prozess sendet, der am unix:/run/php/php7.4-fpm.sockSocket lauscht. Der PHP-FPM-Prozess prüft dann, ob die Datei vorhanden ist, und gibt den Statuscode 404 zurück, wenn sie nicht vorhanden ist.

Der Standardanforderungsablauf für alle anderen URLs sieht vor, dass nginx zunächst prüft, ob die Datei oder das Verzeichnis vorhanden ist. Wenn dies der Fall ist, wird der Inhalt gesendet.

Andernfalls sendet nginx die Anfrage an /index.php, die dann über den Socket an den PHP-FPM-Prozess gesendet wird.

Anschließend verarbeitet der WordPress-Frontcontroller die Anforderung und stellt seine eigene 404-Seite bereit, wenn sie nicht gefunden wird.

verwandte Informationen