wwwsrch.cgi の設置で、CGI先とH.P先のサーバーが違うためlinkがうまくいかない
oojiro
[E-Mail]
[HomePage]
1999/11/08(月) 22:07:17
wwwsrch.cgi を設置させていただきました。m(_ _)m
CGIのサーバーは cgi.jomon.ne.jp で、
H.Pのサーバーは www.jomon.ne.jp です。
検索のcgiを組み入れたく、とりあえずcgi先のフォルダにHTML ファイルのみ置いて、検索プログラムからアクセスできるようにしました。
でも検索プログラムは、自サイトの HTML を検索し、その URL を返すようになっているので、返ってくるリンク先が
http://cgi.jomon.ne.jp/~hmaruuo1/*****.htmlとなり本当のURLの
http://www.jomon.ne.jp/~hmaruuo1/*****.htmlになってくれません
うまく表示を変える手法は無いものでしょうか?
$target_dir = ../../public_html'; # 検索対象ディレクトリ
下方の 243行目
# 表示する
$target =~ s/$target_dir/..\/..\/~hmaruuo1/;
print "<P>\n";
print "<DT><A HREF=\"$target\" TARGET=out>";
$title =~ s/<[^>]*(>|$)//g;
$title =~ s/[\r\n]+//g;
&jcode'convert(*title, $kcode_cgi);
if ($title eq "") {
$title = $target;
}
print "$title</A>\n";
print "( <A HREF=\"$target\" TARGET=out>";
$target =~ s/..\/..\/~hmaruuo1\/?//;
print "$target</A> )\n";
print "<DD>";
と一部手直しはしてあります。
ニワイヂリ
1999/11/11(木) 17:39:44
>検索結果のジャンプ先のURLのパス名が期待するものと
>異なる場合・・・(中略)・・・「# 表示する」という行の次に
>下記の1行を追加するこ>とで回避できます。
>これってサーバー名までも変更できるんですか?
>上記でいうxx.yy.zzの部分も変更できるのかな?教えて下さい。
試してみればいいじゃん。ね?
Nobu3
1999/11/11(木) 20:26:18
検索結果は相対パスなので、サーバ名は入ってませんね。
http://から始まる文字列に変換すればできるでしょう。
print "( <A HREF=\"$target\" TARGET=out>";
>$target =~ s/..\/..\/~hmaruuo1\/?//;
print "$target</A> )\n";
この「$target」を
$target =~ s/..\/..\/~hmaruuo1\/?/http:\/\/www.jomon.ne.jp\/~hmaruuo1\//;
こんなふうに。
Nobu3
1999/11/11(木) 20:28:26
あれ?場所が違うかも・・・。
$target =~ s/..\/..\/~hmaruuo1\/?/http:\/\/www.jomon.ne.jp\/~hmaruuo1\//;
print "( <A HREF=\"$target\" TARGET=out>";
print "$target</A> )\n";
こうかな?
oojiro
1999/11/12(金) 08:50:09
[[解決]]
ありがとうございました。
上のほうも
# 表示する
$target =~ s/$target_dir/..\/..\/~hmaruuo1/;
$target=~s/..\/..\/~hmaruuo1/?/http:\//www.jomon.ne.jp\/~hmaruuo1\//;
と変えてやったところ無事に完成しました。
皆さんのご協力に感謝いたします。
Nobu3
1999/11/12(金) 11:07:10
># 表示する
>$target =~ s/$target_dir/..\/..\/~hmaruuo1/;
>$target=~s/..\/..\/~hmaruuo1/?/http:\//www.jomon.ne.jp\/~hmaruuo1\//;
これで動くのなら、最初から
# 表示する
$target =~ s/$target_dir/http:\//www.jomon.ne.jp\/~hmaruuo1\//;
とした方がスマートですね。
Nobu3
1999/11/12(金) 11:11:12
エスケープが抜けてますね (^^;;
$target =~ s/$target_dir/http:\/\/www.jomon.ne.jp\/~hmaruuo1\//;
ですね。
ふじ
1999/11/12(金) 12:53:22
>$target =~ s/$target_dir/http:\/\/www.jomon.ne.jp\/~hmaruuo1\//;
$target =~ s|$target_dir|
http://www.jomon.ne.jp/~hmaruuo1/|;
こういう場合は、このほうが見やすいかと。
/ でなくても区切りに使えますから。
oojro
1999/11/13(土) 16:25:37
どもども ありがとう!