暗号化されたURLリクエストパラメータを元のYii controller/action
パスに復号化する方法が必要です。例:Yii URLの暗号化/復号化
から:http://www.site.com/feh923rfj932
(暗号化)
へ:http://www.site.com/api/view/1
(復号化された)
私は復号化方法を実装するために使用できるいくつかのCUrlManagerルータコールバックはありますか?
暗号化されたURLリクエストパラメータを元のYii controller/action
パスに復号化する方法が必要です。例:Yii URLの暗号化/復号化
から:http://www.site.com/feh923rfj932
(暗号化)
へ:http://www.site.com/api/view/1
(復号化された)
私は復号化方法を実装するために使用できるいくつかのCUrlManagerルータコールバックはありますか?
はい、YiiはCustom Url Classes「コールバック」を使用して独自のURLロジックを実装する簡単な方法を提供します。
'rules' => array(
'' => 'site/index', // normal URL rules
array(// your custom URL handler
'class' => 'application.components.CustomUrlRule',
),
),
あなたのURLクラスは、次のようになります:依存
class CustomUrlRule extends CBaseUrlRule {
public function createUrl($manager,$route,$params,$ampersand) {
return your_encrypt_method($route);
}
public function parseUrl($manager,$request,$pathInfo,$rawPathInfo) {
return your_decrypt_method($pathInfo);
}
}
うん、しかし、それは単に経路を暗号化して、paramsを含めてはいない。質問の例はparamsを含めて暗号化されている。 –
基本的に、あなたはあなたの新しいデコーダ/エンコーダクラスを指す新しいルールを宣言します。 "api/view/1"から "feh923rfj932"にどうやっていったのですか? – Carsten
リクエストから、URLはすでに暗号化されています。 – cetver
あなたは「http://www.site.com/feh923rfj932」というリクエストを受け取ります。「feh923rfj932」は、いつものようにルーティングできるURLの何らかの形で暗号化されたバージョンだと思っています。暗号化されていますか?私はそれを得ましたか? – Carsten