Вот отрывок из моего 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, что работает.
internal;
, если 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>, то страница отображается правильно.
<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" rel="nofollow noreferrer">https://example.com/manage-tasks</a>
Добавление фиктивного параметра решает проблему, но это действительно странно.Пример: <a href="https://example.com/manage-tasks?dummy=1" rel="nofollow noreferrer">https://example.com/manage-tasks?dummy=1</a>
<a href="https://example.com/manage-tasks?dummy=1" rel="nofollow noreferrer">https://example.com/manage-tasks?dummy=1</a>
Может кто-нибудь помочь мне исправить это, пожалуйста?
Решение:
Термин /index.php$is_args$args вызывает проблему - устраните ее.
Согласно Ричарду Смиту