投稿者 itouhiro
タグ [ Web制作 ]
去年ブログを移行したので、記事のURLが 前のブログ kirinsystem.net → 今のブログ ai11.net と 変わってしまいました。
そこでリダイレクトを設定しました。
この設定をすることで、 ブログの記事を見に来た人が旧URLで来た場合、 通常ならば「旧URLはありません」というエラーメッセージになるところですが、 そうならずに 自動で新しいURLにジャンプして そちらの記事を見ることができます。
さらに検索エンジン(GoogleとかYahoo)で検索したとき 結果に出てくるURLも、新URLに変更できます。
たとえば、
http://kirinsystem.net/japanese_input/nicola.html
↓
http://ai11.net/2005/05/14/
とリダイレクトしたい場合、
.htaccess というテキストファイルに以下の内容を書きます。
redirect 301 /japanese_input/nicola.html http://ai11.net/2005/05/14/
redirect 301 /japanese_input/demo/nicola.html http://ai11.net/2005/05/14/
redirect 301 /japanese_input/tron.html http://ai11.net/2005/05/21/
この .htaccess を
http://kirinsystem.net/
のルートに対応するディレクトリ (たとえば /home/UserName/www/ )に置くと
301リダイレクトになります。
ただし、ほんとうに301リダイレクトされているかは
http://web-sniffer.net/
などで確認したほうがいいです。
そこで旧URLを入力して、
「HTTP Response Header」が
HTTP Status Code: HTTP/1.1 301 Moved Permanently になれば
301リダイレクトは成功しています。
私は以前 tDiaryを使っていて、今は独自ブログツールを使っています。 そのためドメイン(kirinsystem.net → ai11.net)だけでなく、 そのうしろのURL形式も変わりました。
具体的には
http://kirinsystem.net/diary/?date=20060315
↓
http://ai11.net/2006/03/15/
とリダイレクトしようと思います。
個別記事と違ってこの日付形式の記事は多いので、 いちいち .htaccess に書くより、CGIスクリプトで URL変換したほうがよさそうです。
Rubyで CGI.rbを使えば簡単でした。
#!/usr/local/bin/ruby
require 'cgi'
cgi = CGI.new
y=''; m=''; d=''
param = cgi.params
param.each{|k,v|
if k == 'date'
y=v.to_s[0..3]
m=v.to_s[4..5]
d=v.to_s[6..7]
end
}
if y!='' and m!='' and d!=''
hdr={
#'status'=>'REDIRECT',
'status'=>'MOVED',
'Location'=>"http://ai11.net/#{y}/#{m}/#{d}/"
}
print cgi.header(hdr)
else
hdr={
'status'=>'MOVED',
'Location'=>"http://ai11.net/"
}
print cgi.header(hdr)
end
この index.cgi を
http://kirinsystem.net/diary/
に対応するディレクトリに置いて、実行権限を付ける( chmod 700 index.cgi)と、
同じ日付の記事にリダイレクトできます。
上記のリダイレクト処理しても、 別の人のブログににリンクが書かれているものは、 旧URLのまま、変わらずに残ってしまいます。
私が旧URLのドメインを確保して、 リダイレクト処理を続けている限り、新URLにリダイレクトされます。
しかしアクセスログを調べたところ、 旧URLでのアクセスはあまり多くないので、 旧URLのドメインは手放すつもりです。 すると、そのうちリダイレクトされなくなり、 「旧URLはありません」というエラーメッセージになってしまいます。
今後はなるべくURLを変えないようにしたいと考えています。
私はサーバに さくらのレンタルサーバ を使っています。
タグ [ Web制作 ]
固定リンク http://ai11.net/2008/03/07/
ブックマーク ![]()