ここはちょっと見せられない

ぜったいぜったい見せられない

Redirect 301,302,303,307と、GETとPOSTデータとブラウザの挙動

URL転送というサービスが蔓延っているようなので、手元で試してみた。
この転送サービスがどのような転送方法を使っているのかはまだ知らない。

目的は、ECサイトのコミュニティで、この転送サービスを使ってSSLドメインへURL転送し、ログインや買い物を使えるようにしているという書き込みを見たので、そんなことできるのかと漠然と思って、確認してみたかったというもの。

RFCに定義されている、Redirect項の3xx のステータスコードを確認してから、下記コードを置いて確かめてみた。

まずは、RFC2616邦訳。
http://www.studyinghttp.net/rfc_ja/rfc2616#Sec10.3

最初のHTMLファイル。
(my domain1)/redirecttest.php

<html>
<head><title>redirect test</title></head>
<body>
<?php
for ($i=300;$i<308;$i++) {
?>
<h2><?php echo $i ?></h2>
<p>
<form name="form<?php echo $i?>g" method="GET" action="http://(my domain2)/forward_<?php echo $i ?>.php">
<input type="text" name="sendtext" value="<?php echo $i ?> get">
<input type="submit" value=" send ">
</form>
</p>
<p>
<form name="form<?php echo $i?>p" method="POST" action="http://(my domain2)/forward_<?php echo $i ?>.php">
<input type="text" name="sendtext" value="<?php echo $i ?> post">
<input type="submit" value=" send ">
</form>
</p>
<?php
}
?>
</body></html>

(my domain2)/.htaccess

# 300 Multiple Choices
Redirect 300 /forward_300.php http://(my domain3)/forward.php

# 301 Moved Permanently
Redirect 301 /forward_301.php http://(my domain3)/forward.php

# 302 Moved Temporarily
Redirect 302 /forward_302.php http://(my domain3)/forward.php

# 303 See Other
Redirect 303 /forward_303.php http://(my domain3)/forward.php

# 304 Not Modified
Redirect 304 /forward_304.php http://(my domain3)/forward.php

# 305 Use Proxy
Redirect 305 /forward_305.php http://(my domain3)/forward.php

# 306 (Unused)
Redirect 306 /forward_306.php http://(my domain3)/forward.php

# 307 Temporary Redirect
Redirect 307 /forward_307.php http://(my domain3)/forward.php

(my domain3)/forward.php

<?php
var_dump($_GET);
var_dump($_POST);

で、IE8、Firefox3.6.13、Opera10.62、Safari5.0.3、Chrome8.0 で確認したが、307以外全部、GETはそのまま通して、POSTはGETに変えられた。

307 POSTを警告付きで送信できたのは、firefox, Opera
警告なしに送信されたのは、Safari, IE8, Chrome


文中の my domain{1,2,3} はすべて違うサブドメインを使った。同ドメインSSLを持ってないので、ちゃんと同じ環境にできてるわけじゃない事には注意。
各ブラウザは特になんの設定の見直しもせず、普段と同じままで行った。

まだ調査中。