トップ     差分 バックアップ   リロード     一覧 単語検索 最終更新
  • 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)

Pukiwiki?

静的URLに改造する†

工事中

PukiwikiのURLを静的なURLでアクセスできるように改造しました. 一般に,SEOとして行われているものです. 実際のところどうなのか分かりませんが,Googleは ? や & が含まれているページをインデックス化しないという情報がありますので,改造してみました. 単にURLが気にくわなかっただけというのも理由ですが...

実際には,Pukiwikiだけの改造で対処するのではありません.Apacheのモジュールのmod_rewriteを使って,CGI風のURLを*.htmlの形に書き換えて,Pukiwikiに渡すようにしました.

以下のページを参考にしています.

  • PukiWiki静的URL改造 - 南天dub
  • PukiWiki/改造/静的コンテンツに偽装/ページ - cubic9.com
↑

Apacheの設定†

mod_rewriteを設定します.

.htaccess や,Apacheの設定ファイル(http.conf, Gento Linuxの場合はapache.conf) の<Directory>ディレクティブに以下の内容を記述します.

Options FollowSymLinks

RewriteEngine on
RewriteOptions MaxRedirects=1
RewriteBase /pukiwiki/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.html$ index.php?$1 [L]

Apache が,2.0系でないと,ページを階層化している場合に問題が起きます. %2F(/)が含まれていると,mod_rewrite が全くききません. 設定で,

AllowEncodedSlashes On 

としないとなりませんが,このディレクティブは,2.0以降にしか存在しません.

↑

Pukiwikiの改造†

使ったのは,Pukiwiki 1.4.5 です.

これだけでは,Pukiwikiが生成するリンクは,CGI風のままですので,リンクを生成している部分を改造します.

↑

lib/make_link.php†

lib/make_link.php の 576行目あたりに,Link_bracketname クラスの toString がありますので,その内容を次のように書き換えます.

改造前

function toString()
{
       return = make_pagelink(
               $this->name,
               $this->alias,
               $this->anchor,
               $this->page
       );
}

改造後

function toString()
{
       $link_result = make_pagelink(
               $this->name,
               $this->alias,
               $this->anchor,
               $this->page
       );
       $link_result = preg_replace("/index\.php\?(.*)\" title=/",
               "$1.html\" title=", $link_result);
       return $link_result;
}
↑

lib/html.php†

54行あたりで,トップページのURLを生成する部分があります.メニューでトップページへのリンクを生成していますので,ここも書き換えます

改造前

$_LINK['top']      = "$script?" . rawurlencode($defaultpage);

改造後

$_LINK['top']      = rawurlencode($defaultpage) . ".html";
↑

plugin/ls2.inc.php†

ls2 プラグインは,また別の仕組みでURLを作っていますので,そこも改造します.

改造前 126行目

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

改造後

$href   = $r_page."html";
↑

plugin/recent.inc.php†

recent プラグインも同じようにします

改造前 55行目付近

if($page == $vars['page']) {
        // No need to link itself, notifies where you just read
        $items .= " <li><span title=\"$s_page $pg_passage\">$s_page</span></li>\n";
} else {
        $items .= " <li><a href=\"$script?$r_page\" title=\"$s_page $pg_passage\">$s_page</a></li>\n";
}

改造後

if($page == $vars['page']) {
        // No need to link itself, notifies where you just read
        $items .= " <li><span title=\"$s_page $pg_passage\">$s_page</span></li>\n";
} else {
        $items .= " <li><a href=\"$r_page.html\" title=\"$s_page $pg_passage\">$s_page</a></li>\n";
}

私が必要だったのは当面これだけでしたので,他にどれだけURLを生成している箇所があるのかは探していません. ただ,改造していなくてもURLが元のままになるだけで,動作には問題ないと思います.

↑

注意†

最後にお約束の注意です.この改造の結果に,私は責任をもてませんので,自己責任でお願いします.

トップ   編集 差分 バックアップ リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-14 (月) 06:35:18
Link: server/PukiWiki/PATH_INFOを使う
Site admin: shingo

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