アプリケーションが GET パラメータを識別する時の URI 表記形式を定義することが可能です。
例えば、hoge.index モジュールに、次の GET パラメータを渡すとします。
userid = 123
name = fuga
age = 25
name = fuga
age = 25
この場合、通常であれば下記の URI 表記になりますが、
http://example.com/hoge?userid=123&name=fuga&age=25
設定を行うことで、下記のように静的 URL 風に見せることが可能です。
http://example.com/hoge-userid-123/name-fuga/age-25/
上記では、クエスチョン(?)をハイフン(-)に、イコール(=)をハイフン(-)に、アンバサンド(&)をスラッシュ(/)に変更しています。
※上記の「静的 URL 風の設定」は、デフォルトで設定された状態になっています。
URI 表記形式の設定
URI 表記形式の設定は、app.env.php の Lambda::setEnv メソッドで行います。
メソッドの引数 uri_notation が設定対象になります。
Lambda/apps/<APP_DIR>/app.env.php
1 2 3 4 5 6 7 8 9 10 11 12 | Lambda::setEnv(array( : /** * uri_notation */ 'uri_notation' => Lambda::URI_REWRITE_HYBRID, : )); |
uri_notation に設定可能な値は、以下の4つになります。
Lambda::URI_NORMAL
Lambda::URI_REWRITE_STATIC
Lambda::URI_REWRITE_DYNAMIC
Lambda::URI_REWRITE_HYBRID
Lambda::URI_REWRITE_STATIC
Lambda::URI_REWRITE_DYNAMIC
Lambda::URI_REWRITE_HYBRID
それぞれの意味は、以下を参照してください。
設定値 | Lambda::URI_NORMAL |
URI 表記例 | http://example.com/index.php/hoge?userid=123&name=fuga&age=25 |
説明 |
「uri_notation」を定義しない場合のデフォルトのモードです。 .htaccess の rewrite が使えない(使いたくない)場合に指定してください。 URI 表記が PATH_INFO 形式で、あまり見慣れない形式ということもあり、推奨されません。 |
設定値 | Lambda::URI_REWRITE_STATIC | ||
URI 表記例 | http://example.com/hoge-userid-123/name-fuga/age-25/ | ||
説明 |
パラメータを静的 URI にマッピングすることができる「静的モード」です。
デフォルトでは、以下に準じて文字の割り当てを変更しています。 ? クエスチョン ⇒ - ハイフン = イコール ⇒ - ハイフン & アンバサンド ⇒ / スラッシュ 割り当てを変更したい場合は、Lambda::setEnv メソッドで行います。
上記は、クエスチョン(?)をハイフン(-)に、イコール(=)をコロン(:)に、アンバサンド(&)をスラッシュ(/)に変更しています。 上記設定により、下記の URI 表記で GETパラメータの識別が可能になります。 http://example.com/hoge-userid:123/name:fuga/age:25/ [変更時の注意点]
|
設定値 | Lambda::URI_REWRITE_DYNAMIC |
URI 表記例 | http://example.com/hoge?userid=123&name=fuga&age=25 |
説明 |
世間一般に良く知られている、動的にページを生成する URI 表記です。 「動的モード」と呼びます。 特に URI 表記にこだわらない場合は、このモードで何ら問題はありません。 |
設定値 | Lambda::URI_REWRITE_HYBRID |
URI 表記例 |
http://example.com/hoge-userid-123/name-fuga/age-25/
http://example.com/hoge?userid=123&name=fuga&age=25
|
説明 |
前述の「静的モード」と「動的モード」をどちらも利用できる「ハイブリッドモード」です。 柔軟な対応が可能になりますので、一番推奨されるモードです。 |
次ページ: モバイルに対応する