HP作成実録 No.30

自動振り分けCGI (wakeurl.cgi) の設置

同じアドレス(URL)にアクセスしてきた端末(PCか携帯か)によって、
表示するページを振り分けるホームページ自動振り分けCGIの、
wakeurl.cgiの設置方法です。
この他にSSI版や画像自動振り分けCGIも同じ圧縮ファイルに同梱されています。
ですが、今回はwakeurl.cgiだけ使っています。
現状と同じURLのままで、携帯用(i-MODE,J-SKY,EZwebの3種)と、
PC用のページに振り分ける事が出来ます。
index.htmlと同じサーバでSSIを動かせる場合はSSI版の方がいいかもしれません。
ぷららはCGIやSSIを置くサーバは別なのでCGI版を使いました。
設置方法と振り分け方はこれがベストかは判りませんので参考程度です。
携帯でフレームが使えれば違った方法もあります(100%と0%のフレームに分ける)。
でも上手くいかなかったのでこの方法になりました。
いい方法があったら教えて下さい。m(_ _)m
FEW-NET から書庫ファイルをダウンロードしてください。
次に解凍した書庫ファイルの中の、
wakeurl.cgiをエディタで開いて自分用に修正します。


−−−−− wakeurl.cgiの設定 −−−−−
#!/usr/local/bin/perl
プロバイダで定められたPerlへのパスを指定。大抵はこのままでいいようです。

基本設定
#移動ページ。iモードで使います。
$url_i = "http://www.or.jp/shinspsy/imode.htm";
i-MODEでアクセスした時の移動先ページのアドレス。
基本的にはhttp://からのアドレスで指定する。


#移動ページ。J-スカイで使います。
$url_j = "http://www.or.jp/shinspsy/jsky.html";
J-SKYでアクセスした時の移動先ページのアドレス。
基本的にはhttp://からのアドレスで指定するが、
相対パス ./j/で指定でないと画像が表示されない事もあるらしい。
shinはhttp://からのアドレスで指定しているが携帯でもちゃんと表示された。


#移動ページ。パソコンで使います。
$url_pc = "http://www.or.jp/shinspsy/index2.html";
PCでアクセスした時の移動先ページのアドレス。
基本的にはhttp://からのアドレスで指定する。


#移動ページ。EZwebで使います。
$url_e = "http://www.or.jp/shinspsy/ezweb.hdml";
EZwebでアクセスした時の移動先ページのアドレス。
基本的にはhttp://からのアドレスで指定するが、
相対パス ./j/で指定でないと画像が表示されない事もあるらしい。


設定項目はこの4個のアドレスだけです。
shinはとりあえずPCとJ-SKYだけ使えればよかったので、
i-MODEとEZwebの移動先には「見れません」と書いたページを作りました。
EZwebはHTMLではなくHDMLなのでサーバによっては、
別(MIME TYPE)の設定をする必要があるみたいです。
PCの移動先のindex2.htmlは、今までのindex.htmlの名前だけを変えたものです。
新しいindex.htmlは別に作ります。ここで言うindex.htmlは、
今までのトップページ(「ここにリンクして下さい」と言っていたページ)です。
人によってファイル名は違うと思うので、その場合は読み替えて見て下さい。

設定が終わったらFTPでCGIサーバにアップロードして、
次にパーミッション([ ]内の数字)の設定をします。
赤色の文字のファイルはアスキーモード、
緑色の文字のファイルはバイナリーモード でアップロードします。
今回はアスキーモードでアップロードするファイルしかありません。


CGIサーバ側
http://cgi.or.jp/cgi-bin/wake[755]/−wakeurl.cgi [755]

soraディレクトリは本来は777ですが、
FreeComもぷららもセキュリティ上の問題で、
ディレクトリのパーミッションを777に設定することを禁止している為、
755に設定しています。
これでもちゃんと動作しています。
wakeディレクトリの名前はshinが勝手に付けたもので、
コレでなくても(全角文字は薦められないけど)構いません。
次に新しいindex.htmlを作ります。
下の例は最小限のものですが、ほとんど一瞬しか表示されません。
これでなくても構いませんが、手動で移動するリンクも入れておいた方が無難です。
(下の例では省いています)
また、携帯で読み込む事を考えると、あまりファイルサイズの大きなものや、
画像を入れるのは避けた方が無難です。

赤字 の部分のタグは自分用に書換えます(下のは例)。

<html>
<head>
<meta http-equiv="Refresh"
content="0;url=
http://cgi.or.jp/cgi-bin/wake/wakeurl.cgi ">
<title>
</title>
</head>
<body>
</body>
</html>

このindex.htmlを今までのものと差し替えます。
必要に応じて他の携帯用のページも作成し、
それぞれの場所に全てアップロードします。
これらが終わったら、PCと携帯とで同じアドレス(URL)にアクセスしても、
それぞれ設定したページに移動するはずです。
ページが表示されない場合は、アドレスの指定(特に相対パスの時)を
次にアップロード時の転送モードとパーミッションをチェックして下さい。

このやり方の欠点は1ページ余分に表示される事です。
上の例のようなやり方であれば一瞬ですけど。
もっと上手い方法があるんじゃないかと思うんですが、思いつきませんでした。

▲MENUに戻る