Zend Framework附加获取NGINX的参数

时间:2011-09-08 12:13:00

标签: php zend-framework nginx get

我按照以下方式配置我的NGINX for Zend(PHP 5.3 with 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 params,例如:http://web.site/index?par=1

对于我的本地开发系统(Apache),它可以正常工作但不在NGINX下,它确实提供了获取参数。

Anny建议?

编辑:

现在我使用以下配置似乎有效,但我对此不满意,因为每个人都建议尽可能使用try_files"。

location / {
    if (!-e $request_filename) {
        rewrite  /(.*)$  /index.php?q=$1  last;
        break;
    }
}

2 个答案:

答案 0 :(得分:5)

来自Nginx文档(http://wiki.nginx.org/HttpCoreModule#try_files):

  

如果你需要保留args,你必须明确地这样做:

location / {
   try_files $uri $uri/ /index.php?$args;
}

答案 1 :(得分:-1)

我为此使用rewrite module;尝试使用以下内容替换location /块:

location / { 
    index  index.php index.html index.htm;
}   

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