CodeIgniter (以下、「CI」と呼びます) は、優れた外国の PHP 軽量 MVC フレームワークであり、PHP4 と PHP5 をサポートし、高いスケーラビリティ要件を持つ小規模および中規模の Web アプリケーションを開発するための強力なツールです。これまで見てきたブログのプログラムは CI を使用して書かれています。
MVC アーキテクチャの考え方に従い、CI 内のすべてのコントローラーは、シングル ポイント エントリ ファイルindex.php (デフォルト) を介してロードされ、呼び出される必要があります。つまり、デフォルトでは、すべての CI 開発プロジェクトの URL は次の形式になります。
http://localhost/index.php/blog/logs/this_is_a_test_entry
明らかに、デフォルトでは、index が存在します。 URL アドレス部分の php は、URL の簡潔さと SEO の進行にある程度影響します。この記事で紹介した方法で、この厄介なIndex.phpを削除することができます。
CodeIgniter ユーザー マニュアルにこの問題の解決策があることに気づいたかもしれません。ただし、公式に提供されている .htaccess 構成では常に問題が解決されるわけではありません。この記事では、より完全な解決策を提供します。
注: 続行する前に、ホストが .htaccess 構成をサポートしていることを確認してください。このうち、Apache を Web サーバーとして使用する場合は、mod_rewrite モジュールのサポートを有効にする必要があります。IIS を Web サーバーとして使用する場合は、追加の ISAPI_Rewrite 拡張機能をインストールする必要があります。
具体的な方法は以下の通りです。
1. 以下の設定情報をコピーし、.htaccess ファイルとして保存します。
以下は .htaccess ファイルの情報です | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | RewriteEngineOn RewriteBase /RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule^(.*)$ /index.php?/$1 [L] #mod_rewrite モジュールがインストールされていない場合、404 ページすべてが #インデックスに送信されます。 php, このとき、プログラムは非表示が設定されていないものとして実行されます。 ErrorDocument404 /index.php
|
2. 上記の .htaccess ファイルを、CI が配置されているプロジェクトのルート ディレクトリにアップロードします (つまり、index.php と同じレベルのディレクトリ (Down)
3. application/config.php 内の次のパラメータを変更します:
$config['index_page'] = "index.php"; |
$config['index_page'] = ""; //空に設定します |