トップページ⇒hp
9コメント4KB

順路設定

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさんNGNG
HPペ−ジを直でリンクさせないようにしたいのです。

「「「「「「「「「「「「「「「「「「「「「「「「「
#!/usr/local/bin/perl
$ref_url = '〜html';
print "Content-type: text/html\n\n";

$ref = $ENV{'HTTP_REFERER'};
$ref =~ tr/+/ /;
$ref =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C"@` hex($1))/eg;

if (!($ref =~ /$ref_url/i)) { &error; } #※#

while (<DATA>) { print; }
exit;

sub error {
print <<'EOF';

<HTML><HEAD><TITLE>404 File Not Found</TITLE></HEAD>
<BODY><H1>404 File Not Found</H1>
</BODY></HTML>
EOF
exit;
}
__END__
」」」」」」」」」」」」」」」」」」」」」」」」」」」
これをCGIファイルに当てはめたいのです。
HTMLでなら上手く動作しますが、CGIでは
どうも上手くいきません。どうすればいいでしょうか?

__END__ を消してその後にCGI文章を置いたり
したのですがどうも上手くいきません。
0002あきあかねNGNG
いやん、言ってることがよくわからないわ♪
HPページ?ホームページページ?
これはいいとして、HTMLでならうまく動作するってどういうことですか?
CGIじゃないと、うまく動作するはずはないような・・・??
ちなみに、referer設定されたら終わりだから、裏系ページならあまり効果ないような。
0003名無しさんNGNG
END以下に普通にHTMLを書く分には上手く動くのですが
CGIの文章を書くと上手く動かないんです。
0004モノレーノレNGNG
よくわからんけど真ん中のprint;でhtmlファイルをそのまま吐いてるだけだよきっと。
だからCGI書いてもそのまま出力されるよきっと。
この方法のままではダメ。
0005名無しさんNGNG
そのページに リンク禁止と明記して下さい
0006あきあかねNGNG
ああ、なるほど、CGIファイルにあてはめるんじゃなくて、組み込みたいのね^^;
既存のCGIに、以下の三つを組み込む
$ref_url = '〜html';

sub refer{
$ref = $ENV{'HTTP_REFERER'};
(中略)
while (<DATA>) { print; }
exit;
}
sub error{略}

あとは適切な場所で&referを呼び出すだけでいけるんじゃないかと。
0007これを改造して使ってみてはNGNG
SSIが使えるなら、URL-repelerを改造して使ってみては。
ブラックリストに登録されてるページをはねる代わりに、自分のページがREFERERになってなければはねる、という処理に改造すればOK。

URL-repeler
http://kan-chan.stbbs.net/download/cgi/repel.htm
0008めNGNG
fileを開いてないだけだとか?
0009目NGNG
組み込みたいってことか
#!/usr/local/bin/perl
$ref_url = '〜html';


$ref = $ENV{'HTTP_REFERER'};
$ref =~ tr/+/ /;
$ref =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C"@` hex($1))/eg;

if (!($ref =~ /$ref_url/i)) { &error; } #※#

実行する文

exit;

sub error {
print <<'EOF';

<HTML><HEAD><TITLE>404 File Not Found</TITLE></HEAD>
<BODY><H1>404 File Not Found</H1>
</BODY></HTML>
EOF
exit;
}
でいいんじゃない?
■ このスレッドは過去ログ倉庫に格納されています