2012-04-22 55 views
5

次のリダイレクトURLは、http://ではなくhttp%3A%2F%2Fになります。どうすればこれを避けることができますか?http:// CodeIgniterのhttp%3A%2F%2Fになります

ありがとうございます。

URLはこのようになります。

https://accounts.google.com/o/oauth2/auth?client_id=871111192098.apps. 
googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8888%2Fmyappname 
%2Findex.php%2Fwelcome%2Fgoogle_connect_redirect&state=f0babsomeletterscb5b48753358c 
3b9&approval_prompt=force&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2F 
userinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email& 
response_type=code    
+0

私はそれがURLのリダイレクトに影響するとは思わない。 – hjpotter92

答えて

2

あなたがURLに特殊文字を含む文字列を入れると、それらがエンコードされます、あなたはurldecode

0

を使用することができますhttp_build_query()の点は、それurlencode()秒でそれらに参加する前に、あなたのための配列の値をそれぞれクエリーストリング形式これが推奨動作です。

+0

正確です。それは実際にこれをやっていることです。 OP、それをテストしましたか?問題はありますか? –

1

URLに特別な意味を持つ特殊文字があるため、クエリ文字列がエンコードされます。

Wikipediaから

一部の文字は、URL(例えば、スペース)の一部にすることはできませんし、 いくつかの他の文字はURLで特別な意味を持っている:例えば、 文字#をすることができドキュメントのサブセクション(または フラグメント)をさらに指定するために使用されます。文字=は、値から名前を分離するために使用されます。 クエリ文字列は、 の制約を満たすために変換する必要があります。これは、URLエンコーディングと呼ばれるスキーマを使用して行うことができます。

関連する問題