php - Phalcon は / パスにのみアクセスでき、他のパスは IndexAction を使用します。何が起こっているのでしょうか?
phpcn_u1582
phpcn_u1582 2017-05-16 13:13:09
0
2
750

以下の手順を実行したところ、奇妙な問題が発生しました。
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_u1582
phpcn_u1582

全員に返信(2)
刘奇

DI登録コードを投稿

いいねを押す +0
PHPzhong

環境の問題は、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
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート