read.cgiを直接呼び出す
通常は要求されたページが存在しない場合はmod_rewriteによってread.cgiを呼び出します。
read.cgiには通常
- FILE=ファイルID(ファイル名から拡張子を除いた物)
- THEME=テーマ名
をクエリーで渡します。
他にも隠れたパラメータがあり、一部を紹介します。
「base」はディレクトリ構造の変更のために用意されているもので、
本来静的ファイルが置かれるディレクトリのアドレスを渡します。
本来静的ファイルが置かれるディレクトリとは、「html/テーマ名/」です。(末尾は通常「/」)
read.cgiは通常、システムのトップディレクトリにありますので、直接呼び出した場合はページ中の相対アドレスがずれてしまうため、
それを回避できるかもしれません。
baseの例↓
&a(href=../../read.cgi?FILE=cmVhZC5jZ2njgpLnm7TmjqXlkbzjgbPlh7rjgZk,target=_blank)
../../read.cgi?FILE=cmVhZC5jZ2njgpLnm7TmjqXlkbzjgbPlh7rjgZk
このページのファイルIDを指定してread.cgiを直接呼び出していますが、
ディレクトリが違うため、リンク先のアドレスが正常ではありません。
&a(href=../../read.cgi?FILE=cmVhZC5jZ2njgpLnm7TmjqXlkbzjgbPlh7rjgZk&base=html/3column/,target=_blank)
../../read.cgi?FILE=cmVhZC5jZ2njgpLnm7TmjqXlkbzjgbPlh7rjgZk&base=html/3column/
baseにread.cgiの位置から見た本来の位置を指定するとリンク先はだいたい本来の位置になると思われます。
mod_rewriteと組み合わせて、トップページのアドレスを「/html/テーマ名/ファイル」から「/」に変更することもできます。
ページでのテーマ変更を無効にする。
システム上で複数のテーマを使う場合、通常は
&theme()によって特定ページのテーマを変更しますが、
&theme()を使ったページでは指定テーマが強制的に使われるため、PC用とモバイル用などでテーマを分けることはできません。
「ntc=1」をread.cgiのパラメータとして渡すと
&theme()が無効になります。
&theme()は
&blog()でテーマを指定した場合ブログ内の各ページで内部的に呼び出されます。