mod_rewriteを利用しているのですがスラッシュ(%2F)が勝手に一つになってしまいます。


具体的には、あるフォームのActionで設定されたGET変数にURLを入れており、
例えば「http://www.example.com/sample/url=http://aaa.example.com/」というActionが設定されていると、
実際には、「http://www.example.com/sample.php?url=http://aaa.example.com/」を呼び出し
GET変数のurlを受け取って処理を行うといったものです。

しかし、rewriteruleを利用した場合、「http://」のスラッシュが勝手に一つ消えてしまい
$_GETでuelを受け取ると、「http:/aaa.example.com/」となってしまいます。
なお、ブラウザで「http://www.example.com/sample.php_?url=http://aaa.example.com/」と
入力すると正常に受け取れており、スラッシュが消えないことからおそらく
rewriteruleを利用する場合になにか必要なのだと思うのですがいろいろ調べてもお手上げです。

なお、URLエンコードをしてもだめでした。

解決方法を教えてください。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/10/08 11:40:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント60pt

70. mod_rewriteでの%2F問題:ITpro

直接は確認していませんが、これが関係してるんじゃないでしょうか?

id:poshu

ご回答ありがとうございます。

お教えいただいた情報は、エンコードした際に「%2F」が含まれると

404エラーとなってしまう問題ですね。

こちらについては既に対応済みとなります。

※対応しておかないと、そもそも遷移先の画面が表示されないので。

2008/10/01 13:22:21

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 hoongt 173 116 3 2008-10-03 05:54:40

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません