Я настроил свой NGINX для Zend следующим образом (PHP 5.3 с fpm):
server { root /home/page/public/; index index.php index.html index.htm; server_name localhost; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
Теперь я хочу обработать дополнительные параметры get, такие как: http://web.site/index?par=1
С моей локальной системой dev (Apache) она работает нормально, но не под NGINX, которая доставляла параметры get.
Anny предложения?
Редактировать:
Теперь я использую следующую конфигурацию, которая, похоже, работает, но я не доволен ею, поскольку все предлагают «использовать try_files, когда это возможно».
location / { if (!-e $request_filename) { rewrite /(.*)$ /index.php?q=$1 last; break; } }
Из документов Nginx ( http://wiki.nginx.org/HttpCoreModule#try_files ):
Если вам нужны аргументы, вы должны сделать это явно:
location / { try_files $uri $uri/ /index.php?$args; }
Для этого я использую модуль перезаписи ; попробуйте заменить ваше location /
блок следующим:
location / { index index.php index.html index.htm; } if (!-e $request_filename) { rewrite ^.*$ /index.php last; }