- PR -

恒久的リダイレクト(ステータス301)を返す方法

1
投稿者投稿内容
ビジネスモール開発者
常連さん
会議室デビュー日: 2005/03/17
投稿数: 25
投稿日時: 2006-01-30 18:03
皆さんいつもお世話になってます。

リダイレクトで困っています。

ページを移動したので、新しいページへリダイレクトするようにしたいのですが、
その際に、ステータスコード302(一時的な移動)ではなく、301(恒久的な移動)
を返したいです。

response.redirectでは、302を返すと認識しています。

何か良い方法はないでしょうか?

具体的にやりたいことは
今まで、page.aspx?id=XXXXX
だったものを、pageXXXXX.aspx
に変更して、古いURLでアクセスされたら301を返したいのです。

よろしくお願いします。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-01-30 18:17
Response.Redirectは内部で
StatusCode = 0x12e とし、Locationヘッダを書いてるのでしょう。
なので自前で、

Response.StatusCode=301;
Response.AddHeader("Location","ここにurl");

ですかね。
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2006-01-30 18:27
お世話になります。

古い方 ASP の中で、
Response.Clear()
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "移転先.aspx"
Response.End()

でしょうか。
ビジネスモール開発者
常連さん
会議室デビュー日: 2005/03/17
投稿数: 25
投稿日時: 2006-01-31 11:15
べるさん、なおこさん

ありがとうございます。
教えていただきました方法で、あっさりとできました。

レスポンスのステータスを書き換えることができるとは知りませんでした。

いろいろ調べていましたが、かなり的を外していて
そのまま一人で調べていても、たどり着かなかったと思います。
大変助かりました。
1

スキルアップ/キャリアアップ(JOB@IT)