# CodeIgniter ユーザガイド 日本語版 Version 2.0.0

ユーザガイドを検索

# CodeIgniter の URL

CodeIgniter のデフォルトのURLは、検索エンジンにも人間にもわかりやすいように設計されています。動的システムの代名詞といえる一般的な"クエリ文字列"アプローチを採用する代わりに、CodeIgniter では次のような セグメントベースアプローチを採用しています:

`example.com/news/article/`my_article``

Note: 後述するように、クエリ文字列をURLで使用することもできます。

## URI セグメント

Model-View-Controllerアプローチに従うと、URLの中では、セグメントは大抵次のように表現されます:

`example.com/class/function/`ID``

1. 最初のセグメントは呼び出すべきコントローラクラス をあらわします。
2. 2番目のセグメントは、クラスの呼び出されるべき関数またはメソッドをあらわします。
3. ３番目以降のセグメントは、コントローラに渡されるIDなどの値をあらわします。

URI クラス と URL ヘルパ にはURIデータを簡単に扱うためのメソッドが用意されています。さらに、URI ルーティング 機能を用いれば、より柔軟にURLを再マッピングすることができます。

## index.php ファイルをURLから除去する

初期状態では、index.php ファイルがURLの中に含まれる格好になっています:

`example.com/index.php/news/article/my_article`

単純なルールを記述した.htaccess ファイルを使えば、簡単にこれを取り除くことができます。特定の項目を除くすべてがリダイレクトされるという、「除外」ルールを用いた方法を使ったファイルの例です:

`RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]`

上の例では、index.php、images、およびrobots.txt 以外のあらゆるHTTPリクエストはindex.phpファイルへのリクエストとして取り扱われます。

## URLサフィックス（接尾辞）の追加

config/config.php ファイルの中で、CodeIgniterで生成されるすべてのURLに付加されるサフィックス（接尾辞）を指定することができます。 たとえば、URLが次のようなものだったとき:

`example.com/index.php/products/view/shoes`

ページを何かの種類に見せかけるために、オプションで`.html` などのサフィックスを追加することができます:

`example.com/index.php/products/view/shoes.html`

## クエリ文字列の有効化

URLに次のようなクエリ文字列を使用したい場面もあると思います:

`index.php?c=products&m=view&id=345`

CodeIgniter ではオプションでこのようなことにも対応しています。この機能は、application/config.php ファイルで有効にすることができます。設定ファイルを開くと次のような項目があると思います:

`$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';`

"enable_query_strings" を TRUE に変更すると、この機能が有効になります。次の例のように、コントローラとメソッドを呼び出すために "トリガ（trigger）"に指定した語句[ 訳注：この例では、「c」と「m」。上の設定の$config['controller_trigger']などのところで指定している語句 ]を使ってコントローラとメソッドにアクセスします:

`index.php?c=controller&m=method`

Please note: クエリ文字列を使用している場合は、セグメントベースのURLで機能するように設計されているURLヘルパ（それと、FormヘルパなどのURLを生成するヘルパ）で便利に利用できる機能が使えないので、かわりにURLを自分で組み立てる必要があります。