1 votes

Nginx ne charge que l'index php

Je veux que Nginx ne charge que index.php sur chaque URL entrant.

exemple.com/urlb?id=1 exemple.com/urlc?id=2 exemple.com/urld?id=3 mon /etc/nginx/sites-available/default ressemble à ce qui suit -

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

    root /var/www/html;
    index index.php index.html index.htm;

    server_name html;

    location ~ \$ {
        try_files /index.php$is_args$args;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix://var/run/php/php7.3-fpm.sock;
    }
}

Je veux que toutes les URL ci-dessus ou n'importe quelle URL de la fonctionnalité charge toujours index.php.

1voto

Ivan Shatsky Points 1950
  1. L'emplacement que vous avez utilisé ne correspondra qu'aux demandes contenant $ symbole, ce n'est certainement pas ce que vous voulez.
  2. L'utilisation de la try_files directive vous doit spécifier au moins un fichier/dossier à vérifier. La façon la plus simple de spécifier le fichier qui échouerait au contrôle d'existence est de spécifier dev/null .

Votre emplacement devrait donc ressembler à

    location / {
        try_files /dev/null /index.php$is_args$args;
        include fastcgi.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_pass unix://var/run/php/php7.3-fpm.sock;
    }

ou, sans le try_files directive

    location / {
        include fastcgi.conf;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        fastcgi_pass unix://var/run/php/php7.3-fpm.sock;
    }

1voto

Tero Kilkanen Points 32968

Essayez ce qui suit location à la place :

location / {
    try_files /index.php$is_args$args =404;

    include snippets/fastcgi-php.conf;
    fastcgi_pass unix://var/run/php/php7.3-fpm.sock;
}

Cela répond à l'exigence de try_files nécessitant au moins deux arguments. =404 est la solution de repli pour renvoyer 404 Not Found réponse lorsque index.php n'existe pas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X