新バージョンのテストを こちら で行っています。
サマリ | Apache の RewriteMap もどきの機能を追加し、任意の静的ページ風 URL に偽装 |
---|---|
リビジョン | 2.0 |
対応バージョン | 1.4.6, 1.4.7, Plus! rev.1494 |
作者 | revulo |
ライセンス | GPLv2 |
以下のような機能をサポートするプラグインです。 さらに付属のパッチを PukiWiki 本体に適用することで、 BracketName などのリンク先もこの形式の URL にすることができます。
(ページ名) | PukiWiki/Tips |
---|---|
通常の URL | http://…/index.php?PukiWiki%2FTips |
html 形式 | http://…/PukiWiki/Tips.html |
ディレクトリ形式 | http://…/PukiWiki/Tips/ |
(ページ名) | PukiWiki/改造 |
---|---|
変換前の URL | http://…/PukiWiki/%B2%FE%C2%A4.html |
変換後の URL | http://…/PukiWiki/Hack.html |
当サイトの PukiWiki には、このプラグインが組み込んであります。 左のメニューから適当なページに飛んで、 〜.html という形式の URL になっていることを確認してみて下さい。
Apache や lighttpd で、mod_rewrite の機能が使える環境であることが必要です。
アーカイブファイルをダウンロードし、 PukiWiki をインストールしてあるディレクトリで展開します。
$ tar xvfz rewritemap-2.0.tar.gz
設定ファイルの雛型が欲しい場合は、それもダウンロードして下さい。 展開する際には、上書き禁止の k オプションとパーミッション保持の p オプションを付けて下さい。
$ tar xvfzkp rewritemap_template-20070505.tar.gz
BracketName などのリンク先もこの形式の URL にしたい場合は、PukiWiki 本体にパッチをあてます *1。
$ tar xvfz pukiwiki_rewritemap-20080127.tar.gz $ patch --binary -Np1 < pukiwiki-1.4.7_rewritemap.diff
必要に応じて、その他のプラグインにもパッチをあてて下さい。
$ tar xvfz plugin_rewritemap-20090201.tar.gz $ patch -p0 < counterlist-1.4_rewritemap.diff $ patch -p0 < socialbookmark-1.5_rewritemap.diff $ patch -p0 < treeview-1.2_rewritemap.diff
PukiWiki Plus! の場合は、index.php もしくは pukiwiki.ini.php にある ROOT_URI の値を設定する必要があります。 以下に、設定例をいくつか挙げておきます。
define('ROOT_URI', '/'); // トップページの URL が http://example.com/ のような場合 define('ROOT_URI', '/pukiwiki/'); // トップページの URL が http://example.com/pukiwiki/ のような場合
この後、以下のいずれかの設定を行って下さい。
なお、
バージョン 2.0 以降では RewriteRule の設定方法が変わっているので注意して下さい。
rewritemap.ini.php の設定を以下のように変更します。
define('PLUGIN_REWRITEMAP_POSTFIX', '.html');
.htaccess に以下のような設定を追加して下さい。
(http://example.com/wiki/〜.html のような URL にする場合の例)
RewriteEngine on RewriteBase /wiki RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)\.html$ index.php?cmd=rewritemap&page=$1 [QSA,L]
rewritemap.ini.php の設定を以下のように変更します。
define('PLUGIN_REWRITEMAP_POSTFIX', '/');
.htaccess に以下のような設定を追加して下さい。
(http://example.com/wiki/〜/ のような URL にする場合の例)
RewriteEngine on RewriteBase /wiki RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/$ index.php?cmd=rewritemap&page=$1 [QSA,L]
rewritemap.inc.php の先頭部分で以下の値を設定することで、動作をカスタマイズできます。
:config/RewriteMap ページに表形式でルールを書くことで、 各ページに URL 用の別名を設定することができます。 例えば、PukiWiki/自作プラグイン というページの URL を PukiWiki/Plugin.html にするには、以下のように記述します。
|PukiWiki/Plugin |PukiWiki/自作プラグイン|
:config/Redirect ページに表形式でルールを書くことで、 リダイレクト用の仮想的なページ名を設定することができます。 例えば、PukiWiki/インストール → PukiWiki/設定 のようにページを名前変更した場合、
|PukiWiki/インストール |PukiWiki/設定|
のように記述することによって、 旧 URL へのアクセスを自動的に新 URL へリダイレクトさせることができます。 このリダイレクトは 301 のステータスコードを返しているので、 Google などの検索エンジンにも URL が変わったことが伝わります。
リダイレクトに関する注意事項をいくつか書いておきます。
バージョン | 日付 | 更新内容 |
2.0 | 2007/05/05 | UTF-8 版 PukiWiki に正式対応 日本語のページ名をうまく扱えないことがあった不具合を修正 リダイレクト機能を追加 |
1.2 | 2006/11/11 | 変換ルールをキャッシュするようにして高速化 |
1.1 | 2006/10/27 | 存在しないページを指定した場合は 404 を返すように修正 |
1.0 | 2006/04/23 | 初公開 |
日付 | 更新内容 |
2008/01/27 | PukiWiki Plus! の newpage_subdir プラグインが動かなくなっていたのを修正 |
2007/12/16 | PukiWiki Plus! i18n 版 rev.1494 用のパッチを追加 |
2007/06/02 | edit.inc.php プラグインにもパッチをあてるように修正 |
2007/05/05 | PukiWiki 1.4.7 (UTF-8 版) 用のパッチを追加 |
2006/06/26 | PukiWiki 1.4.7 用のパッチを追加 |
2006/04/23 | PukiWiki 1.4.6 用のパッチを公開 |