PCサイトのHTTPステータスを302

[新着] Webテンプレートを仮オープンしました



0   名前: Naruko : 2006/11/20(月) 09:46  ID:2iKKqsVv
フリーのindex.cgiでPC用ページとキャリア別携帯ページ(ディレクトリ)に振分けています。この形だとPCのトップページ(index.htm)がHTTPのステータス302での転送先となってしまいGooglでインデックスされません。301とか200のステータスを返す振分けにしたいのですが、わかりやすい方法はないでしょうか。

1   名前: Chip : 2006/11/20(月) 09:46  ID:iXTrKUp6
振り分けで200を返すってのはなしじゃないの?


301を返すようにするには振り分けをやってるCGIスクリプトを改造する。

Perlなら恐らくは
print "Location〜
ってやっている部分を
use CGI;
$CGI =CGI->new;
print $CGI->redirect(-url => 'URL', -status => '301 Moved');
と、する。
・元のスクリプトがわからんのでこれはあくまで一例。単純に置き換えても動かないかも。
・改造するにはある程度言語(Perl?),CGIの知識がある事。


よくわからなければ
・フリーのindex.cgiの入手元に問い合わせて改造を頼んでみる。
・今のとは別の301を返す振り分けCGIを探す。

2   名前: Naruko : 2006/11/20(月) 09:46  ID:i9JFaf.T
Chip様 早々のご教授ありがとうございました。おんぶに抱っこでお恥ずかしいのですが、以下のようなcgiなんです。どのように書き換えたらいいのかお教え願えますか?

$TOP = 'http://www.●●●.jp';
$IMODE = '/i2/index.html';
$I_QVGA = '/i2/index.html';
$EZWEB2 = '/e/index.html';
$J_SKY = '/v/index.html';
$OTHER = 'index.htm';

## 以下スクリプトは変更しないでください。 ###
$h_i = "Content-type:text/html\n\n";
$h_e = "Content-type:text/html;charset=Shift_JIS\n\n";
$h_j = "Content-type:text/html\n\n";
$agent = $ENV{'HTTP_USER_AGENT'};

if ( $agent =~ /DoCoMo/i ) {
# 505i 以上の QVGA 対応
if ( $agent =~ /501/i || $agent =~ /502/i || $agent =~ /503/i || $agent =~ /504/i ){
print "Location: $TOP/$IMODE\n\n"; print $h_i ;
}else{
print "Location: $TOP/$I_QVGA\n\n"; print $h_i ;
}

}elsif ( $agent =~ /UP\.Browser/i && $agent !~ /KDDI/i ) {
print "Location: $TOP/$EZWEB2\n\n"; print $h_e ;

}elsif ( $agent =~ /UP\.Browser/i && $agent =~ /KDDI/i ) {
print "Location: $TOP/$EZWEB2\n\n"; print $h_e ;

}elsif ( $agent =~ /J-Phone/i ) {
print "Location: $TOP/$J_SKY\n\n"; print $h_j ;

}elsif ( $agent =~ /L-mode/i ) {
print "Location: $TOP/$IMODE\n\n"; print $h_i ;

}else{
print "Location: $TOP/$OTHER\n\n"; print $h_i ;

一覧へ戻る