ホームページ >php教程 >PHP开发 >Nginx 構成 CodeIgniter プロジェクト (1)

Nginx 構成 CodeIgniter プロジェクト (1)

黄舟
黄舟オリジナル
2016-12-20 12:01:361997ブラウズ

まず、NginxのURL書き換えメソッドを使用しました。

enable_query_strings をオンにする

オンにする方法は非常に簡単です: application/config/config.php で設定します:

$config['enable_query_strings'] = FALSE;

CI 開発プロジェクトで使用される PATH_INFO モードは次のとおりです。 Nginx 構成で URL を書き換えるには、CI 構成ファイルで文字列クエリを有効にし、URL 形式での変更を比較する必要があります:

URL: www.xxx.com/user/profile 文字列クエリ モード: www. xxx.com /index.php?c=user&m=profile

特定のルールに従ってフロントエンドとバックエンドの URL を書き換えた後、テストは OK になりました。しかし、文字列クエリを有効にした後に生成されたページング URL アドレスが変更されたため、ページング時に問題が発生します:

無効: /user/list/10 文字列クエリを有効にした後: /user/list&per_page=10

次の間違った URL が表示されるのは、ページネーションを生成するときに、base_url 形式が変更されていないためです。そのため、/user/list から対応する /index.php?c=user&m=list に変更すると、次の状況になります。 2 ページ目: www.xxx.com/index.php?c=user&m=list&per_page=10 3 ページ目: www.xxx.com/index.php?c=user&m=list&per_page=20 4 ページ目: www.xxx .com /index.php?c=user&m=list&per_page=30


そして、設定したページサイズは常に 10 なので、per_page は常に 10 である必要があります。 Pagination クラスのコードを調べたところ、per_page が query_string_segment のデフォルト値にすぎないことがわかりました。per_page パラメーターだと勘違いしていました。

ページングは​​リライトと互換性があります

要約すると、ページングがリライトと互換性がある場合は、ページングを生成するときに Base_url パラメーターを変更します:

方法 1: /index.php?c=user&m=list、結果は次のようになります。 /index.php?c=user&m=list&per_page=10 方法 2: /user/list?、結果は次のようになります: /user/list?&per_page=10


ページング SQL は次のとおりです:

$this->db- > ;limit($pagesize, $this->input->get('per_page'));


URL の一貫性を維持するために、後から不要なパラメータを追加することもできます。結果は /user/list?x=xxx&per_page=10 になります。ページネーションについて

ディスカッション

します。もちろん、CI 付属のページングを使用したり、Pagination.php を変更したりすることもできません。

それがメソッドのパラメータとして渡される場合、/user/arg1/arg2/arg3 などの通常の URL は、書き換え中に渡すことはできません (少なくとも、私はまだ解決策を見つけていません)。解決策は、パラメーターが GET モードで渡されない限り、プログラムの変更が必要になるため、お勧めできません。

そして、リライトを使用するには、さまざまな形式の URL をターゲットにする必要があり、プロジェクトが複雑な場合は負担になるため、別の方法を探しました。Nginx に PATH_INFO を fastcgi に渡すようにします。次の記事を参照してください。

上記は Nginx 設定 CodeIgniter プロジェクト (1) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。