0

私のyiiのURLは次のとおりです。

http://localhost/php_pro_106/reload/ByCustomer/mJYwIzoaIGe0R8lAVCqPhG%2Fg0jJFWjiWWdPnkq5VDlY%3D

これを取得するには、URL マネージャーで何をする必要がありますか。現在のルールは次のとおりです。

'<controller:\w+>/ByCustomer/<giftcode>'=>'<controller>/ByCustomer',

実際の問題は、私が得ることです:

The requested URL     /php_pro_106/reload/ByCustomer/mJYwIzoaIGe0R8lAVCqPhG/g0jJFWjiWWdPnkq5VDlY= was     not found on this server.

URL に原因が%3D %2Fあります。正常に動作させるにはどうすればよいですか?

4

2 に答える 2

0

私はそれの解決策を得ました。そのためには、エンコードとデコードの方法を変更する必要があります。

function base64_url_encode($input) {
 return strtr(base64_encode($input), '+/=', '-_,');
}

function base64_url_decode($input) {
 return base64_decode(strtr($input, '-_,', '+/='));
} 

この問題は、エンコードされた Url にあるいくつかの文字が原因でした。そのため、これらの文字を置き換える必要があります。

これらのリンクが役に立ちます:

スタックオーバーフロー

グーグルグループ

于 2014-08-11T17:22:38.573 に答える
0

Apache%2Fの URL に問題があることはわかっています。常に 404 で応答し、php スクリプトは実行されません。私はそれを回避する方法を見つけたことはありません。しかし、それは数年前のことです。

編集:

解決策はありますが、少なくとも仮想ホストの apache 構成ファイルを編集できる必要があります (その時点ではありませんでした)。AllowEncodedSlashes On次に、内に追加する必要があります<VirtualHost>。または、グローバルに設定することもできます。

于 2014-08-11T13:07:43.433 に答える