ダイナミックパブリッシングの設定

PowerCMS Xでは、以下の再構築オプションが選択可能です。

  • 静的(スタティック)
  • ダイナミック
  • オンデマンド(最初のリクエスト時に動的ページ生成され、ファイルが書き出される)
  • キュー(非同期に worker.phpによって静的再構築)
  • 手動

「ダイナミック」「オンデマンド」を選択した時、リクエストを pt-view.php に渡す必要があります。また「ダイナミック」「オンデマンド」を選択しない場合でも、リクエストを pt-view.php に渡すことによって、非公開ページ・アイテム(画像など)のプレビューや、LivePreview (未来日時のウェブサイトプレビュー)が可能になります。pt-view.php は、powercmsx/siteディレクトリにあるほか、Websiteテーマに含まれています。

Apache(.htaccess)の設定の例

以下に設定の例をあげます(Websiteテーマに含まれています)。

Options -Indexes
DirectoryIndex index.html

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !(\.php|/)$ [NC]
RewriteCond %{QUERY_STRING} . [OR]
RewriteCond %{HTTP_COOKIE} pt-user [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ <mt:websitepath>/pt-view.php

RewriteCond %{REQUEST_METHOD} !=GET
RewriteCond %{REQUEST_FILENAME} !\.php$ [NC]
RewriteRule ^ <mt:websitepath>/pt-view.php

ErrorDocument 403 <mt:var name="websiteurl" relative="1">/pt-view.php
ErrorDocument 404 <mt:var name="websiteurl" relative="1">/pt-view.php
 

上記の設定では、以下の条件を満たす場合に pt-view.php にリクエストが渡ります。

  • ログインクッキーがある時(OR)
  • GETメソッド以外の時(OR)
  • ファイルが存在しない時(404)(OR)
  • クエリパラメタ付きのリクエストの時(OR)
  • php以外の拡張子の時
  • 404・403エラーの時

GETメソッド以外の時に pt-view.php にリクエストを渡す設定をすることで、問い合わせフォームを静的に出力しても、投稿を受け取れるようになります。また、クエリパラメタ付きのリクエストを pt-view.php に渡すことによって、静的な一覧ページにクエリパラメタを付けて、ページネーションや動的検索を実現できるようになります。

参考リンク(外部サイト)