搜尋

首頁  >  問答  >  主體

php - Phalcon 只能存取/路徑,其他路徑都走indexAction,是怎麼回事?

按照以下步驟走,出現了奇怪的問題。
我用phalcon-devtools-2.0.13 工具建立了一個項目,test
然後,成功運行!
之後,我改瞭如下內容:

也沒問題:

但是:

我新增一個路由,就出問題了:

請問這是怎麼回事?我現在php5.6 phalcon2.0 nginx 配置:

 server {
           listen      80;
           server_name test;
           root /Users/ryugou/test/public;
           index  index.php index.html index.htm;
           charset     utf-8;
  
          location / {
                try_files $uri $uri/ /index.php;
         }
 
        location ~ \.php$ {
             try_files     $uri =404;
 
             fastcgi_pass  127.0.0.1:9000;
             fastcgi_index /index.php;
 
             include fastcgi_params;
             fastcgi_split_path_info       ^(.+\.php)(/.+)$;
             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;
         }
 }
phpcn_u1582phpcn_u15822747 天前732

全部回覆(2)我來回復

  • 怪我咯

    怪我咯2017-05-16 13:15:09

    貼DI註冊代碼

    回覆
    0
  • PHPz

    PHPz2017-05-16 13:15:09

    環境問題,不是php版本、Phalcon版本bug,是nginx配置問題!
    坑!
    Phalcon預設的URI資訊是從$_GET['_url']取得,也可以設定為$_SERER['REQUEST_URI']取得。
    使用這兩種不同方法獲取,還得要不同的nginx配置! ! (詳情請看Phalcon文件 Phalcon nginx配置)
    這特麼也得配置!
    使用$_GET['_url'](預設):

    location / {

        try_files $uri $uri/ /index.php?_url=$uri&$args;

    }
    使用$_SERVER['REQUEST_URI'],nginx配置:

    location / {

        try_files $uri $uri/ /index.php;

    }
    想要正常使用$_SERVER['REQUEST_URI']的方式,nginx配置完了還不要緊,還要在php程式碼裡修改:

    use PhalconMvcRouter;
    $router->setUriSource(Router::URI_SOURCE_SERVER_REQUEST_URI);

    回覆
    0
  • 取消回覆