[Namazu-win32-users-ja 1286] pnamazuでのページ送りが上手く機能しません

古賀裕一 cogagoc @ for-you.co.jp
2012年 6月 28日 (木) 19:51:22 JST


はじめまして古賀と申します。

お世話になります。
現在Webサーバ上でpnamazuを使用させていただきWebサイトの全文検索を運用しているのですが
検索結果画面での page:[prev][1][2][3][next]となっているところのURLの最後に 
/ の文字が入ってしまいうまく機能しません。

具体的には
検索結果の1ページ目は何の問題もなく表示されているのですが
page:[prev][1][2][3][next]に割り当てられているリンクが
http://hogehoge/namazu/namazu.cgi?query=...
となるべきところが
http://hogehoge/namazu/namazu.cgi/?query=...
となってしまい、2ページ目以降スタイルシートや他ページへのリンク
(http://hogehoge/index.htmlとなるべきところが
http://hogehoge/namazu/index.htmlとなってしまいます)や画像などがきちんと読
み込めません。

上記の前の段階で、 pnamazu.cgiの2行目の$SCRIPT_NAME = "'';に何も記述してい
なかったときにはリンクが
http://hogehoge/hogehoge/namazu/namazu.cgi/?query=...
となってしまっていたので

こちらページに
http://www.tgenergy.co.jp/search/doc/pnamazu.html
> cgiwrap 対策について
> 
> web server で cgiwrap が動いている場合、cgi に制御が移った時点で、 SCRIPT_NAME が書き換えられた
> 状態になっているようです。 そこで、次のような対策をしています。
> 
> スクリプトの先頭に $SCRIPT_NAME を設定する行を、これ見よがしに置いておく。
> $SCRIPT_NAME = '';
> ## cgiwrap のために「次の xx 件」が表示できないときに、
> ## CGI の絶対パスを設定して下さい。
> ## 例えば、http://www.xxx.yyy/zzz/namazu.cgi だったら
> ## $SCRIPT_NAME = '/zzz/namazu.cgi';
> ## のように
> てな感じに。
と記述されておりましたので、 $SCRIPT_NAME = '';にはnamazu.cgiまでのパス
を記述しております。

.namazurcのReplaceの設定かと思い、いろいろと変更してみたのですが、結果は変わりませんでした。
検索結果各htmlファイルのリンクは2ページ目以降も、きちんと機能しております。

皆様のお知恵を拝借できれば幸いです。
どうかよろしくお願いいたします。

【環境】
CGI:pnamazu-2006.12.23に含まれておりますpnamazu.cgiだけを使用させていただいております。
HTMLファイルがutf-8で作成されているため、文字列をshift-jisに変換するのに別
途こちらのページのスクリプトを
使用させていただいております。http://sakaguch.com/utf1.html
indexの作成:Namazu 2.0.14 for Win32
perlバージョン:5.8.8



Namazu-win32-users-ja メーリングリストの案内