角川と紀伊國屋比較して紀伊國屋の電子書籍アプリが良さそうだったので買おうとしたら下巻は電子版が無い。。。角川には上下巻あるから待てばいいんだろうけど。これじゃあまだ買う気にならない2012年02月07日21時41分
Web > リンククッションCGI

電気技術とプログラムの世界

« XboxにLinuxをインストール | メイン | TECRA 510CTにVine Linux »

リンククッションCGI

TASYU.COMをご覧いただきありがとうございました。

これより先は外部リンクです。
(http://tasyu.com/)

こんなページがTASYU.COMでは表示される。
よく,企業やイベント系のサイトで表示されることがあるけど,自分のサイトとは関係のないことを見る人に伝えるためのページ。

これは,CGIスクリプトで簡単に作ることができるので紹介。

まず,以下のスクリプトをコピーしてlink.cgiと保存する。
*文字コードはUTF-8Nで保存してね。

#ここからコピー


#!/usr/bin/perl --
##Perlのパスをサーバーによっては直す

use CGI::Carp qw(fatalsToBrowser);
use open ":utf8";  

##CGIを使う許可
# "|"で区切る
$set_url = 'http://tasyu.com/';

&check_http_referer;
$string = $ENV {'QUERY_STRING'};
($value,$url) = split (/url=/,$string);
print "Content-type: text/html\n\n";

##ここからHTML
print <<"EOM";
<HTML lang=ja>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<TITLE>これより先は外部サイトです</TITLE>
</head>
<body>

<h3>ご覧頂きありがとうございました。</h3>
<ul><h4><a href="$url">これより先は、外部サイトになります。<br>
($url)</a><h4></ul>

EOM
##ここまでHTML

print "</body></html>";
sub check_http_referer {
if ($set_url && $ENV{'HTTP_USER_AGENT'}) {
$set_url =~ s/\./\\./g;
$SENV{'HTTP_REFERER'} = $ENV{'HTTP_REFERER'};
$SENV{'HTTP_REFERER'} =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
if ($SENV{'HTTP_REFERER'} !~ /$set_url/i) {
&onError('外部サーバからの呼び出しです/Called from External Server');
}}}

sub onError #($_)
{
local($_) = $_[0];

print "Content-Type: text/plain\n";
print "\n";
print;

exit(0);
}
__END__



#ここまでコピー

で,$set_url = '' の''の中に自分のサイトのURLを書く。
*外部から勝手に使われないようにです。

UTF-8Nでlink.cgiとして保存したらCGIの動く場所にアップロードしてパーミッションを705または755に変更してlink.cgiに動作権限を与えます。

で,リンクを貼る時に href="http://tasyu.com" などと書いていたところを href="/link.cgiをアップロードした場所/link.cgi?url=http://tasyu.com/" と /link.cgiをアップロードした場所/link.cgi?url= を加えてあげれば完成です。

HTMLの部分は自由に書き直して大丈夫です。
HTML中でリンク先のURLを表示したい時は $url と書くと表示されます。
まずは,HTMLを編集しないで動かして見てください。

トラックバック

このエントリーのトラックバックURL:

コメントする


画像の中に見える文字を入力してください。

About

2007年1月20日 11:36に投稿されたエントリーのページです。

ひとつ前の投稿は「XboxにLinuxをインストール」です。

次の投稿は「TECRA 510CTにVine Linux」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

ページのトップへ
tasyu.com  - ブログ  - 電気  - リンクについて
Copyright © TASYU All rights reserved.