У меня проблема с конфигурацией Nginx и Phalcon.
Это мой серверный блок:
server {
listen 80;
server_name testapp.dev;
root /srv/http/testapp/public;
index index.php index.html index.htm;
charset utf-8;
location / {
try_files $uri/ /index.php?_url=$uri&$args;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
Это с сайта Phalcon: https://olddocs.phalconphp.com/en/3.0.0/reference/nginx.html
Все в порядке, пока я не ввожу адрес браузера таким образом (когда есть модуль «Тест»): testapp.dev/test
, Но это работает, когда я прохожу testapp.dev/test/
или же testapp.dev/test/part
или же testapp/test/part/
,
Интересно, что если я введу имя несуществующего модуля, например: testapp.dev/test2
, он выполняет индексный файл и показывает ошибку, что путь определения модуля не существует.
Подведем итог выше:
testapp.dev/test
— не работаетtestapp.dev/test/
— за работойtestapp.dev/test/part
— за работойtestapp.dev/test/part/
— за работойtestapp.dev/test2
— модуль не существует, но индекс выполняется, поэтому он работаетtestapp.dev/test2/
— как выше …Когда я вхожу в: testapp.dev/index.php?url_=/test
работает.
Первая мысль — я должен попытаться добавить / в конце try_files
директива, но когда я ее вставляю, она тоже не работает.
Я пробовал также это:
Phalcon и nginx — фреймворк запускается только indexController. Это как выше …
Также я пытался добавить косую черту следующим образом: https://serverfault.com/questions/645667/php-file-downloaded-instead-of-executed-with-nginx-try-files, но безуспешно
Задача ещё не решена.
Других решений пока нет …