2008年8月24日日曜日

OCN WEBスタンダード等で、WordPressのパーマリンクを動作させる

OCNのビジネス向けプラン(WEBスタンダード等)は、PHPは動作可能(mod_rewriteも可)であるのだが、CGI版で提供されているにもかかわらず、cgi.fix_pathinfoが有効化されていない。

そのため、パーマリンク設定でWordPressを運用すると、No input file specified.というエラーが出る。

これを回避するには、下記rewriteルールを.htaccess内で記述する。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) /index.php?pagename=/$1 [L]
RewriteRule ^(.+) - [PT]

上記で、ページがパーマリンク形式のアクセスで表示できるようになるが、このままでは通常の投稿が表示できない。(すべてページとして処理されるため)
通常の投稿を表示させるために、下記を追加する。

WordPress側で、パーマリンクを/%category%/%postname%/としておく。
インストールルートにcategoryというフォルダを作り、その中の.htaccessで下記を記述する。

RewriteEngine On
RewriteBase /category
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /index.php?category_name=$1 [L]
RewriteRule ^(.+) - [PT]

0 件のコメント: