[rNote's Note]

mod_rewriteによるrnote.phpの隠蔽

これによるメリットとしては
・htmlが静的生成されているように見せることが出来る
・アドレスが簡単になる
とか?

さて、肝心の方法だが、公式サイトでは以下のようになっている。
-----------------------
RedirectMatch 301 ^([^.]*[^/])$ $0/
DirectoryIndex rnote.php

RewriteEngine on
RewriteRule ^(index\.html?)$ rnote.php [L]
RewriteRule ^(.+\.htm)$ rnote.php?u=$1&%{QUERY_STRING} [L]
RewriteRule ^(.+/)$ rnote.php?u=$1&%{QUERY_STRING} [L]
-----------------------
これでも大体において問題は無いのだが、実はこのままだとRedirectMatchに不具合がある。
SSI使わない人には関係ないけどね。

というわけで私のサイトの場合はこれ。
-----------------------
DirectoryIndex rnote.php

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [R]

RewriteRule ^(index\.html?)$ rnote.php [L]
RewriteRule ^(.+\.htm)$ rnote.php?u=$1&%{QUERY_STRING} [L]
RewriteRule ^(.+/)$ rnote.php?u=$1&%{QUERY_STRING} [L]
-----------------------
但し負荷はこっちの方が多少高いので、SSIを使わない人や全てをrNote上で運用している人は公式サイトの方が良いでしょう。

で、rNoteを運用していないディレクトリにこのRewriteRuleが適用されては困るので、rNoteに関係ないディレクトリには以下の.htaccessを設置しておきましょう。
-----------------------
RewriteEngine off
-----------------------
私のサイトの場合は、d_arcade、d_computer、d_consumer、txt、links、questionディレクトリにこれを置いてます。
これを置かないとindexの表示時にエラーを出しますので、rNoteに関係ないディレクトリには必ず設置しましょう。

http://www.aselia.net/
Copyright (C)1996-2012 cst, All rights reserved.