インフォメーションBBS
[使い方]
[タイトルのみ]
[関連発言]
[最新20発言]
[過去ログ一覧]
発言#1104を修正または削除できます:
お名前:
←パスワード(修正用)
アドレス:
タイトル:
本文:
#1101(海豚氏)の書き込みを引用します: >#1100(わかやま神氏)の書き込みを引用します: >>そうねっ!単純が一番! >>で、手元に資料がないから・・・ >>正規表現と置換を利用すれば可能です。 >>置換だけでも出来ると思うけど。 >>それらしい事分かれば連絡します。 > >ありがとうございます。 >期待に胸膨らませてお待ちしていま〜す♪ 正規表現って難しいのねん。 で、これでどうかな? #!/usr/local/bin/perl $r = $ENV{'HTTP_REFERER'}; #リンク元の取得 ($ref, $b) = split( /\?/, $r ); #「?」より前を取得 $this_url = 'http://www.hoge.ne.jp/cgi-bin/hoge/hoge/env_cgi.cgi'; #実行CGI $come_url = 'http://www.hoge.ne.jp/hoge/env.shtml'; #リンク元 $for_url = 'http://www.yahoo.co.jp/'; #yahooへぶっ飛ばす #比較が「0」なら直接「1」ならリンク元または自分自身 $env_ok = ($ref eq $come_url || $ref eq $this_url) ? '1' : '0' ; if ($env_ok == 0) { print "Location: $for_url\n\n"; #バイバイ exit; #おちまい } たとえば http://p4room.mda.or.jp/book/cgi/info.cgi?res=1098 となっていたら、「?」より前を取ってきます。 「$b」はダミーですから使う必要はありません。 「$b」の中には「res=1098」が入っています。 該当する文字(この場合は「?」)がない時は、 すべての文字を返しますから問題ないでしょう。
[トップページに戻る]
管理人 :
キャメル