静的サイトには、URLを解釈してページを組み立てるPHPがありません。URLとファイルが1対1で対応している必要があります。
Webサーバーは /news/ のようにディレクトリで終わるURLを受け取ると、その中の index.html を返します。この性質を使って、拡張子の付かないURLは「ディレクトリ+index.html」に、拡張子の付くURLはそのままのファイル名に書き出します。
| 種類 | CMSでのURL | 書き出されるファイル |
|---|---|---|
| トップページ | / | index.html |
| 固定ページ | /works/15_izmcci | works/15_izmcci.html |
| フォルダの索引 | /works/ | works/index.html |
| ブログ記事 | /news/archives/159 | news/archives/159/index.html |
| ブログ一覧 | /news/ | news/index.html |
| 一覧の2ページ目 | /news/page/2/ | news/page/2/index.html |
| カテゴリ別一覧 | /news/archives/category/release/ | news/archives/category/release/index.html |
| RSS | /news/index.rss | news/index.rss |
| sitemap.xml | /sitemap.xml | sitemap.xml |
| アップロード画像 | /files/uploads/photo.jpg | files/uploads/photo.jpg |
| テーマのCSS | /テーマ名/css/style.css | テーマ名/css/style.css |
baserCMS は、固定ページをテーマの中に1ページ1ファイルで持っています。公開先でも同じ構成にしたほうが、CMS上の構造と公開先の構造が一致して分かりやすいためです。
この変換はコンテンツ管理の種別が「ページ」のものだけに適用されます。ブログ記事や、独自プラグインが提供するページは従来どおりディレクトリ形式です。
/works/15_izmcci.html になります。
ページ内のリンクは自動で書き換わるので、サイト内を辿るぶんには問題ありません。ただし、外部のサイトやチラシに /works/15_izmcci という拡張子なしのURLを載せている場合、そのままでは開けません。Webサーバー側で .html を補う設定を入れるか、公開先に転送設定を置いてください。
baserCMS のページ送りは /news/?page=2 というクエリ文字列の形です。しかし静的サイトでは「?」以降でファイルを出し分けられません。Webサーバーは ?page=2 を無視して、同じ news/index.html を返してしまいます。
そこでこのプラグインは、公開先では /news/page/2/ というディレクトリ形式のURLを使います。CMSから取りに行くときだけ ?page=2 に読み替えます。ページ送りのリンクも自動で書き換わるので、設定は要りません。
上と同じ理由で、クエリ文字列の付いたURLは既定では静的化しません。「?」より前だけを取り出して1つのページとして扱います。どうしても必要な場合のみ、設定画面の「クエリ文字列ホワイトリスト」にパラメータ名を書いてください(詳しくは URL収集)。