Запросы маршрутизации через index.php с nginx

Я переношу свой сервер с Apache на Nginx и имею это очень простое правило .htaccess :

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L] 

Идея этого заключается в том, чтобы направлять каждый запрос на передний контроллер ( index.php ). Я пытаюсь сделать то же самое с Nginx. Я использовал онлайн-конвертер, чтобы сделать этот блок местоположения Nginx:

 location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php break; } } 

но когда я добавляю его в конфигурацию моего сайта, Nginx просто выплевывает исходный код файла PHP в качестве загрузки. Для справки, вот весь файл конфигурации:

http://pastebin.com/tyKtM1iB

Я знаю, что PHP работает, как будто я <?php phpinfo(); блок местоположения и делаю файл с <?php phpinfo(); он работает правильно.

Любая помощь будет оценена по достоинству.

Solutions Collecting From Web of "Запросы маршрутизации через index.php с nginx"

Вот как я направляю ВСЕ на index.php, включая запросы подкаталогов, HTTP args, ect.

 location / { try_files $uri $uri/ /index.php?$args; #if doesn't exist, send it to index.php } location ~ \.php$ { include fastcgi_params; fastcgi_intercept_errors on; # By all means use a different server for the fcgi processes if you need to fastcgi_pass 127.0.0.1:9000; } 

Так, например, они отправляются в index.php:

 http://foo.bar/something/ http://foo.bar/something/?something=1 

Хотя они идут напрямую в файлы

 http://foo.bar/someotherphp.php http://img.ruphp.com/php/someimg.jpg 

Пропустить конец регулярного выражения:

 location / { index index.html index.php; if (!-e $request_filename) { rewrite ^.* /index.php break; fastcgi_pass 127.0.0.1:9001; } }