Как исправить конфигурацию Nginx, которая загружает файл PHP после переписывания директив?

Вот выдержка из моего nginx conf:

location / {
    try_files $uri $uri/ /index.php$is_args$args @no-dot-php;
    autoindex on;
}

location ~ \.php$ {
    internal;
    try_files $uri =404;
    include snippets/fastcgi-php.conf;
    fastcgi_pass php_upstream;      
}

location @no-dot-php {
    rewrite ^(.*)$ /$1.php last;
}

Я хотел использовать директиву php без расширения, и она отлично работает. Я добавил internal;, так что если вы добавите .php к URL, он выдаст 404, что работает.

Если URL-адрес https://example.com/view-task?act=view&id=2, он показывает страницу правильно.

Теперь вот моя проблема. Без параметров url файл php загружается, а не отображается. Пример: https://example.com/manage-tasks он загрузит php-файл «manage-tasks».

Добавление фиктивного параметра решает проблему, но это было бы странно. Пример: https://example.com/manage-tasks?dummy=1

Может кто-нибудь помочь мне исправить это, пожалуйста?

0
задан Harris 25 June 2019 в 19:57
поделиться