検索

ホームページ  >  に質問  >  本文

php - Phalcon は / パスにのみアクセスでき、他のパスは IndexAction を使用します。何が起こっているのでしょうか?

以下の手順を実行したところ、奇妙な問題が発生しました。
palcon-devtools-2.0.13 ツールを使用して、プロジェクト test を作成しました。
すると、無事に動きました!
その後、次の内容を変更しました。

< /p>

問題ありません:

< /p>

しかし:

< /p>

ルートを追加しましたが、問題が発生しました:

< /p>

すみません、何が起こっているのですか?私は現在 php5.6 palcon2.0 の nginx 設定です:

 サーバー {
           80を聞いてください。
           サーバー名テスト;
           root /Users/ Ryugou/test/public;
           インデックスindex.phpインデックス.htmlインデックス.htm;
           文字セット utf-8;
  
          位置/{
                try_files $uri $uri/ /index.php;
         }
 
        場所 ~ \.php$ {
             try_files $uri =404;
 
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_index /index.php;
 
             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;
          }
 
         場所 ~ /\.ht {
             すべてを否定する。
         }
 }
phpcn_u1582phpcn_u15822747日前729

全員に返信(2)返信します

  • 怪我咯

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

    DI登録コードを投稿

    返事
    0
  • PHPz

    PHPz2017-05-16 13:15:09

    環境の問題は、php バージョンや Phalcon バージョンのバグではなく、nginx の設定の問題です。
    落とし穴!
    Phalcon のデフォルトの URI 情報は $_GET['_url'] から取得するか、$_SERER['REQUEST_URI'] に設定できます。
    これら 2 つの異なる方法を使用して取得するには、異なる nginx 構成が必要です。 ! (詳細については、Phalcon のドキュメント Phalcon nginx 設定を参照してください)
    これは設定する必要があります。
    $_GET['_url'] を使用します (デフォルト):

    場所 / {

    リーリー

    }
    $_SERVER['REQUEST_URI'] を使用、nginx 設定:

    場所 / {

    リーリー

    }
    $_SERVER['REQUEST_URI'] を通常に使用したい場合は、nginx が設定されているかどうかは問題ではありませんが、php コードで変更する必要があります:

    PhalconMvcRouterを使用します;
    $router->setUriSource(Router::URI_SOURCE_SERVER_REQUEST_URI);

    返事
    0
  • キャンセル返事