トップ     差分 バックアップ   リロード     一覧 単語検索 最終更新
  • Profile
  • Java
    • Java Tips
    • Eclipse, XML
  • Softwares
  • サーバ関係
    • PukiWiki
  • Links

最新の20件
2022-09-03
  • AutoTicketLinkName
2014-10-31
  • PukiWiki/1.4
  • PukiWiki/1.4/Manual
  • Help
  • FormattingRules
  • server/サーバの仕様
2009-02-27
  • FrontPage
2008-09-16
  • links/よく使うツール
  • Profile
2008-08-07
  • gentoo/lvm2+raid1
2006-12-16
  • gentoo/linux-igd
2006-11-23
  • gentoo/PPPoEの設定
  • gentoo
2005-09-14
  • InterWikiName
  • SandBox
2005-04-15
  • MenuBar
2005-04-08
  • links/巡回先
2005-04-07
  • Java/XML/rngomでXMLSchemaのDatatypeLibraryを使う
2005-04-06
  • Java/Tips/Javaで,子プロセスを使うときの注意点
2005-03-26
  • Java/Eclipse/Lomboz J2EE Plugin から,Tomcat 5.0を起動する

(edit)

server/PukiWiki

PATH_INFOを使う†

実際のところどうなのか分かりませんが,Googleは ? や & が含まれているページをインデックス化しないという話を聞きます. ついでにURLをシンプルにしたいと思っていたので,PATH_INFOを使って,? や,& が含まれないURLを使用できるようにしてみました.

最初は,「server/PukiWiki/静的URLに改造する」 の方法でやろうとしたのですが,Apache を 2.0 以上にして設定を変えないとうまくいかないので,やめにしました.

作業に当たって,次のページを参考にしました.

  • PukiWiki with PATH_INFO - wiki@nothing

使った PukiWikiのバージョンは,1.4.5 です.

↑

lib/init.php†

次の箇所を

// QUERY_STRINGを取得
if (array_key_exists('QUERY_STRING',$_SERVER) and $_SERVER['QUERY_STRING'] != '') {
       $arg = $_SERVER['QUERY_STRING'];
} else if (array_key_exists('argv',$_SERVER) and count($_SERVER['argv']))

このように変更

} else if (array_key_exists('PATH_INFO',$_SERVER) and $_SERVER['PATH_INFO'] != '') {
        $arg = preg_replace("/^\/*(.+)\/*$/","$1",$_SERVER['PATH_INFO']);
} else if (array_key_exists('argv',$_SERVER) and count($_SERVER['argv']))

ただ,私は最後が".html"で終わるようにしてみたかったので, さらに,このように変更してみました.

} else if (array_key_exists('PATH_INFO',$_SERVER) and $_SERVER['PATH_INFO'] != '') {
        $arg = preg_replace("/^\/*(.+)\.html\/*$/","$1",$_SERVER['PATH_INFO']);
} else if (array_key_exists('argv',$_SERVER) and count($_SERVER['argv']))
↑

lib/make_link.php†

このページ(PukiWiki with PATH_INFO - wiki@nothing)を参考に修正します.

それに加えて,make_pagelink関数の中の以下の箇所を探し出して,

return '<a href="' . $script . '?' . $r_page . $anchor . '"' . $title . '>' .
        $s_alias . '</a>';

以下のように変更します

return '<a href="' . $script . '/' . $r_page . ".html" . $anchor . '"' . $title . '>' .
        $s_alias . '</a>';

最後が".html"で終わるようにしたので,私の場合はこのようにしてます.他の箇所も同じように修正しています.

↑

lib/html.php†

このページ(PukiWiki with PATH_INFO - wiki@nothing)を参考に修正します.(末尾に.htmlをつける場合は適宜修正の必要があります)

加えて,236行目あたりの make_related で,以下の箇所を探して,

$_links[] = $tag ?
        '<a href="' . $script . '?' . $r_page . '" title="' .
        $s_page . ' ' . $passage . '">' . $s_page . '</a>' :
        '<a href="' . $script . '?' . $r_page . '">' .
        $s_page . '</a>' . $passage;

次のように変更します

$_links[] = $tag ?
        '<a href="' . $script . '/' . $r_page . ".html" . '" title="' .
        $s_page . ' ' . $passage . '">' . $s_page . '</a>' :
        '<a href="' . $script . '/' . $r_page . ".html" . '">' .
        $s_page . '</a>' . $passage;
↑

lib/func.php†

ページ一覧のリンクを生成している部分を探して変更します. page_list 関数の中の,291行付近にある以下の箇所を

$r_page  = rawurlencode($page);

次にように変更します

$r_page  = rurlencode($page);

また,293行目付近の以下の箇所を

$str = '   <li><a href="' .
       $script . '?cmd=' . $cmd . '&amp;page=' . $r_pag        e .
       '">' . $s_page . '</a>' . $passage;

次のように変更します

$str = '   <li><a href="' .
       $script . '/' . $r_page. '.html?cmd=' . $cmd .
       '">' . $s_page . '</a>' . $passage;

これでも十分ですが,私の場合,cmdがreadだった場合は,単に.htmlで終わるURLにしたかったので,さらにこうしています.

if($cmd == 'read'){
        $cmdarg = '';
} else {
        $cmdarg = '?cmd='. $cmd;
}
$str = '   <li><a href="' .
        $script . '/' . $r_page. '.html' . $cmdarg .
        '">' . $s_page . '</a>' . $passage;
↑

plugin の改造†

URLを生成するplugin を修正します.たとえば,ls2, recent などがあります.

ls2の場合は plugin/ls2.inc.php の 123行目あたりにある次の箇所を

$r_page = rawurlencode($page);

次のように変更しました.

$r_page = rurlencode($page);

また,126行目付近にある次の箇所を

$href   = $script . '?cmd=read&amp;page=' . $r_page;

次のように変更しました

 $href   = $script . '/' . $r_page . ".html";

必要に応じて,他のプラグインにも変更を加えます.

↑

スキンの改造†

PATH_INFO を使うと,URL が http://isolinear.info/wiki/index.php/FrontPage の用になります. そのため,相対パスで,CSSファイルや画像ファイルを指定している場合,パスの指す場所がずれてしまいます.

スキンで,CSSファイルや,画像ファイルを直に指定している場合は,絶対パスで書き直す必要があります.

↑

設定の変更†

pukiwiki.ini.php で IMAGE_DIR を絶対パスで指定する必要があります.理由はスキンと同じです.

define('IMAGE_DIR', 'http://isolinear.info/wiki/image/');
トップ   編集 差分 バックアップ リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-14 (月) 18:57:18
Link: server/PukiWiki server/PukiWiki/静的URLに改造する PukiWiki
Site admin: shingo

PukiWiki 1.5.4 © 2001-2022 PukiWiki Development Team. Powered by PHP 8.1.20. HTML convert time: 0.008 sec.