PCサイトのHTTPステータスを302
-
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 ;