Namazu-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
相対パスでリンクを出力する
- From: Yoshinori TAKESAKO <takesako@xxxxxxxxx>
- Date: Tue, 23 Oct 2001 22:01:26 +0900 (JST)
- X-ml-name: namazu-users-ja
- X-mail-count: 02147
- References: <OE45CB5f3sqMvIggcpP0000fb5d.com>
竹迫です。
"Yuji Koyanagi" <yuji_koya@xxxxxxxxxxx> wrote:
> ある事情から、リンクを全て相対パスにしなければならなくなり、
> 一生懸命頑張っているのですが、行き詰まってしまいました。
>
> 検索結果のリンク先については、.namazurc の「Replace」を
> 編集する事で修正できました。
>
> ただ、ペイジ:[1][2][3] にあるリンクは変更されません。
この部分のリンクは、namazu.cgi が直接出力しているので、
ソースコードを修正して、再コンパイルする必要があります。
> 以上の事から、確認したいことは、次のとおりです。
>
> 1. .namazurcの用に、環境変数で設定することができるのか。
現在のところ、環境変数などで設定することはできません。
> 2. 1の方法が無い場合、修正するところはoutput.cでいいのか。
> または、下記変更内容が正しいか。
修正するファイルは、src/output.c で大丈夫です。
変更個所については、概ねいいところと突いていると思います。
ただし、この変更内容だと、深いディレクトリの下に
namazu.cgi があるときに、問題が生じてくる可能性があります。
例) /document/search/cgi-bin/namazu.cgi など
汎用性を持たせるためには、絶対パスのディレクトリ部分を削除して、
ファイル名だけを指定するようにした方がよいでしょう。
とりあえず、今回の要望に対応した Namazu 2.0.7 用のパッチを
簡単に作りましたので、こちらをお試し下さい。
-----------------------------------------------------------ここから
--- output.c.orig Wed Sep 12 13:50:42 2001
+++ output.c Tue Oct 23 18:35:02 2001
@@ -492,14 +492,20 @@
qs = nmz_getenv("QUERY_STRING");
sn = nmz_getenv("SCRIPT_NAME");
dn = nmz_getenv("DOCUMENT_URI");
if(dn == NULL || *dn == '\0')
dn=sn;
+ if (dn != NULL) {
+ char *s;
+ for (s = dn; *s; s++)
+ if (*s == '/') dn = s + 1;
+ }
+
html_print(_(" <strong>Page:</strong> "));
max = get_maxresult();
whence = get_listwhence();
for (i = 0; i < PAGE_MAX; i++) {
if (i * max >= n)
break;
-----------------------------------------------------------ここまで
とりあえず、手元の Red Hat Linux 7.1 の環境で動作確認をしました。
> 3. make方法は "%make 『enter』"でいいのか。
修正したプログラムに問題がなければ、単純に、
ソースを展開した namazu-2.0.7 ディレクトリにて、
% make
とすれば、コンパイルできるはずです。
ただし、namazu.cgi のコンパイルはされますが、
実際に Web サーバ上で使われている場所への
インストールは手動で行なわなければなりません。
namazu.cgi を CGI として動作させているパスが
/usr/local/apache/cgi-bin/namazu.cgi だとすると、
以下のようなコマンドを実行して、古い namazu.cgi を
上書きするのを忘れないようにして下さい。
% cp src/namazu.cgi /usr/local/apache/cgi-bin/namazu.cgi
確かに、アプリケーションレベルゲートウェイなどを介して
Web サービスを提供している場合、設定内容によっては
リンク先がすべて相対パスでないと問題が起きる事がありますね。
--
広島市立大学 情報科学部 情報機械システム工学科 知能ロボット講座
竹迫 良範 <takesako@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>