[PHP-users 19626]Re: 履歴を残さずにページを飛ばす方法とは

Ken php @ jcom.home.ne.jp
2003年 12月 31日 (水) 19:22:21 JST


kurさん、寺岡さん、岡田さん、返信有り難うございます。
そして、ネットが無い環境にしばらくいた為、返信が遅れて大変申し訳ありません。

> header関数でのやり方はわかりませんが、
> .httaccessのRedirectを使ってはどうでしょう?
> 
modrewriteを使ってやってみようかと思います。
しかし、それだと移動はせずに(like alias?)そのまま表示されますよね?

> 履歴というのがブラウザのものであるなら、ブラウザに依存する
> のではないでしょうか。
> 
> apache の Redirect は "HTTP/1.1 302 Found" と "Location:" が
> 返ってくるようです。
> 
> この「履歴が残る」という現象がよくわからないのですが、
> 
> たとえば、
> $redir_url="http://okdt.org/blog/";
> header("Location: $redir_url");
> 
> というのをやると、どうなるということでしょうか。
> ちゃんと飛びますし、これで不都合を感じたことがないんですが…。
> 
以下に履歴に残らずジャンプする場合としない場合を明記します。

●● 履歴に残らずジャンプする場合(1)

GET /cnt2.php?uid=3242 HTTP/1.0
Host: pya.cc
User-Agent: PHP/4.3.4RC2-dev

HTTP/1.1 302 Found
Date: Fri, 26 Dec 2003 01:08:05 GMT
Server: Apache
X-Powered-By: PHP/4.3.4
Set-Cookie: PHPSESSID=436507b4a9ea480a4146437b61dacb73; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
X-Accelerated-By: PHPA/1.3.3r2
Location: ./pyaimg/pimg.php?imgid=2078
Connection: close
Content-Type: text/html
Content-Language: ja


●● 履歴に残らずジャンプする場合(2)

GET / HTTP/1.0
Host: apple.com
User-Agent: PHP/4.3.4RC2-dev

HTTP/1.1 302 Found
Date: Fri, 26 Dec 2003 01:13:01 GMT
Server: Apache/1.3.27 (Darwin)
Location: http://www.apple.com/
Connection: close
Content-Type: text/html; charset=iso-8859-1
-->
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="http://www.apple.com/">here</A>.<P>
</BODY></HTML>


○○ 履歴に残るタイプのジャンプをする場合(value-domain)(1)

GET / HTTP/1.0
Host: www.example.com
User-Agent: PHP/4.3.4RC2-dev


HTTP/1.1 302 Found
Connection: close
Date: Fri, 26 Dec 2003 01:05:51 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Location: http://www.example.com/location/
Cache-Control: public, max-age=60
Expires: Fri, 26 Dec 2003 01:06:51 GMT
Last-Modified: Fri, 26 Dec 2003 01:05:51 GMT
Vary: *
Content-Type: text/html; charset=utf-8
Content-Length: 146
-->
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a
href='http://www.example.com/location/'>here</a>.</h2>
</body></html>


○○ 履歴に残るタイプのジャンプをする場合(phpでheader関数使用)(2)

GET /~username/loca.php HTTP/1.0
Host: www.hoge.com
User-Agent: PHP/4.3.4RC2-dev

HTTP/1.1 302 Found
Date: Fri, 26 Dec 2003 01:19:42 GMT
Server: Apache/2.1.0-dev (Unix) mod_perl/1.99_11-dev Perl/v5.8.0
mod_ssl/2.1.0-dev OpenSSL/0.9.6b PHP/4.3.4RC2-dev
X-Powered-By: PHP/4.3.4RC2-dev
Location: ./tesemoveto/index.php
Connection: close
Content-Type: text/html


とても不思議です。これらの差が自分でもうまく理解出来ないのですが、何が原因で
履歴にジャンプ元が残ったり残らなかったりするのでしょうか?
改めてご教授下さい。

環境:macintosh Internet Exproler 5.1
サーバー:Apache/2.1.0-dev (Unix) mod_perl/1.99_11-dev Perl/v5.8.0
mod_ssl/2.1.0-dev OpenSSL/0.9.6b PHP/4.3.4RC2-dev



PHP-users メーリングリストの案内