• 締切済み

GETでリダイレクトしたURLから&(アンパサンド

PHPで、URLをGETでリダイレクトしたのですが、そのURLから&(アンパサンド)以降の文字がすべて消えてしまうようです。 str_replaceによるエスケープなど、色々試みたり調べてみたのですが、上手くいかず、良い解決策がみつかりませんでした。 もしわかる方がおられればお願いします。 同時に、.htaccessによるRedirectMatchを使用して可能にならないかとも思っています。 URLはかなりの数があって、例えば http://www.google.co.jp/search?hl=ja&source=hp&biw=1064&bih=801&q=testtesttest&aq=f&aqi=&aql=&oq= といったURLを数十個すべてリダイレクトさせようとしています。 URLは今後も増えていく予定です。 http://www.google.co.jp/ の以降に&があるURLはすべてエスケープして、きちんと「&」以降も送信させるようにしたい場合に、どのように指定すればいいでしょうか?

みんなの回答

  • mpx
  • ベストアンサー率71% (149/209)
回答No.3

GETのクエリー文字列も含めてリダイレクトしたいということなら <?php header("HTTP/1.1 301 Moved Permanently"); header("Location: http://www.example.com$_SERVER[REQUEST_URI]"); ?>

回答No.2

こんばんは。 >PHPで、URLをGETでリダイレクトしたのですが 現在どのような処理になってるんですかね? 何をしたいのか。 今、何をしているのか。 ちょっと文面だけで、判断できないです・・・すみません。 >同時に、.htaccessによる .htaccessを使うなら、mod_rewriteでよくないですか? RewriteRule XXXXX XXXXX [QSA] とすれば、GETパラメータは引き継がれますが?

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

urlencode()してみては如何でしょうか? http://php.net/manual/ja/function.urlencode.php RedirectMatch に関しては、さっぱり分かりません。