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

Вот отрывок из моего 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-адрес <a href="https://example.com/view-task?act=view&id=2" rel="nofollow noreferrer">https://example.com/view-task?act=view&id=2</a>, то страница отображается правильно.

Теперь вот моя проблема.Без параметров url файл php загружается, а не отображается.Например: <a href="https://example.com/manage-tasks" rel="nofollow noreferrer">https://example.com/manage-tasks</a> он загрузит php-файл manage-tasks.

Добавление фиктивного параметра решает проблему, но это действительно странно.Пример: <a href="https://example.com/manage-tasks?dummy=1" rel="nofollow noreferrer">https://example.com/manage-tasks?dummy=1</a>

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

1 Ответ

0 голосов
/ 28 июня 2019

Решение:

Термин /index.php$is_args$args вызывает проблему - устраните ее.

Согласно Ричарду Смиту

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...