動的ページと静的ページをNamazuにインデックスさせる方法
前回書いた「動的ページをNamazuに読ませる」方法が一応解決したのでメモ。
結局下記の方法で解決させた。
■解決法2
http://d.hatena.ne.jp/hiroshinozawa/20081022/1224696169
Namazuのインデックス構築の前に「wget」でコンテンツを取得してからNamazuに食わせる。
具体的には、下記のようなシェルを記述し、毎日定時にインデックスを更新する。
環境変数の日本語対応も含めていろいろ一度にやらせる。
namazu_cron.sh
#!/bin/sh PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin export PATH LANGUAGE=ja ;export LANGUAGE LANG=ja ;export LANG wget -r http://hogehoge.jp/ mknmz --no-encode-uri -aO /var/www/vhosts/www.hogehoge.jp/html/NAMAZU/index/ /var/www/vhosts/www.hogehoge.jp/html/NAMAZU/wget_folder
上記ファイルを/var/www/vhosts/www.hogehoge.jp/html/NAMAZU/wget_folder/namazu_cron.sh
として保存し、cronにて呼び出す。
ポイントとしては、mknmzしたときにURLエンコードさせないようにするのと、.namazurcに下記を記述してwgetしたファイルそのものにNamazuからリンクさせないようにすること。
Replace /var/www/vhosts/www.hogehoge.jp/html/NAMAZU/wget/hogehoge.jp/ http://www.hogehoge.jp/
この解決法の問題点としては、wgetする際にコンテンツ量が増えてきたら処理が重くなってしまう事だな〜。
ちなみに、最近主流のUTF-8の検索窓からnamazu.cgiに飛ばすと、日本語が文字化けします・・・orz
これを根本的に解決するにはnamazu本体にutf-8対応バッチを当てて自力でコンパイルする方法があるが、少々つらい・・
やはり一枚ラッピングしたphpなりcgiをかまして、文字コードをeuc-jpに変換してからnamazu.cgiにリダイレクトさせましょう。