Mit Nginx werden keine anderen Website-Seiten als die Startseite geöffnet.

Mit Nginx werden keine anderen Website-Seiten als die Startseite geöffnet.

Ich habe eine Website auf einem Nginx-Serverblock eingerichtet und sie wird problemlos geladen. Aber sobald ich versuche, eine andere Webseite als die Startseite zu öffnen, wird die Meldung „404 Nicht gefunden“ angezeigt. Aus diesem Grund ist keine der Seiten außer der Startseite sichtbar.

Hier ist sites-availabledie Datei.

server {
        listen 80 ;
        listen [::]:80 ;

        root /var/www/yoalfaaz.com/html;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name yoalfaaz.com www.yoalfaaz.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #

        location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        location ~ /\.ht {
        deny all;
        }
}

Können Sie mir bitte sagen, woran es liegt, dass sich keine der Seiten öffnet? Ich habe es auch verwendet nginx -tund alles läuft erfolgreich und es gibt keine Fehler in der Datei error.log.

Antwort1

Ändern Sie Ihren locationBlock von diesem

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}

dazu

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    # only uncomment the next line, if not set in fastcgi-php.conf already
    # fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
}

btw: es scheint noch ein weiteres Problem auf deiner Seite zu geben: Überprüfe das Verbindungstimeout für deine Dateihttps://www.yoalfaaz.com/yoimg/yoalfaaz.png

Antwort2

Diese Pfadeexistiert nichtals Dateien im Dateisystem. Sie werden von Ihrer Webanwendung verarbeitet. Aber Sie leiten sie nicht wirklich dorthin weiter try_files. Sie leiten sie stattdessen an eine 404-Seite weiter.

                try_files $uri $uri/ =404;

Stattdessen sollten Sie Anfragen, die keine statischen Dateien sind, an Ihre Webanwendung weiterleiten. Beispiel:

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

verwandte Informationen