カテゴリー
Programming

LXRのbaseurl

LXR (Linux Cross Reference)は設定ファイルの項目baseurlをもとに、
HTMLのbase要素を通じてスクリプトへのパスをブラウザに伝える。
もし、LXRを閉じたネットワークに設置して内部から利用し、
さらに外部からもSSHのポートフォワーディングなどで
利用する場合、色々なホスト名でアクセスされることになる。
しかし、単にbaseurlに”/lxr/”などと相対パスを書いても
base要素のhref属性としてはブラウザに正しく解釈されず、
おかしな挙動が起きてしまう。
この場合は、LXRのlib/LXR/Common.pmのbaseurlサブルーチンを


sub baseurl {
return('http://'.$ENV{'SERVER_NAME'}.
':'.$ENV{'SERVER_PORT'}.
$Conf->baseurl);
}

などと書き換えて絶対パスにしてやればよい。