Я использую Phalcon и Nginx, и у меня проблема. Когда я перехожу на http://myapp.dev/segmentation, Phalcon должен запустить SegmentationController и его метод indexAction (). Но вместо этого в Phalcon работает IndexController (контроллер по умолчанию для «/»). Я думаю, проблема связана с конфигурацией Nginx, потому что все работает отлично под Apache.
Вот моя конфигурация сайта Nginx:
server { listen 80; server_name myapp.dev; index index.php index.html index.htm; set $root_path '/var/www/myapp/public'; root $root_path; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { try_files $uri $uri/ =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location ~* ^/(css|img|js|flv|swf|download)/(.+)$ { root $root_path; } location ~ /\.ht { deny all; } location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri $uri/ =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } }
Используйте эту конфигурацию
try_files $uri $uri/ @rewrite; location @rewrite { rewrite ^/(.*)$ /index.php?_url=/$1; }
Рабочая конфигурация
Его проблема с директивой местоположения
Используйте эту конфигурацию.
location / { root $root_path; index index.php index.html index.htm; # if file exists return it right away if (-f $request_filename) { break; } # otherwise rewrite it if (!-e $request_filename) { rewrite ^(.+)$ /index.php?_url=/$1 last; break; }
Надеюсь это поможет!
Счастливое кодирование !!!