2011年3月10日

WordPressで下書きプレビューができない

WordPressをいじっていて嵌ったので備忘録

投稿を書いていて、途中でどんなか見てみたかったので「下書きとして保存」をした後に「プレビュー」。
ところが、404.phpの内容が表示されてしまい、下書きが見れない。

「WordPress 下書き プレビュー 見れない」 などのキーワードで検索しいろいろと調べたのだけど、どれも自分の症状とあわなかったり、試しても解決しなかったりで、相当困った。

そこで、他のサーバに全く同じ環境をつくり、一つ一つ原因を検査した結果なんとか解決できた。

どうやら原因は、、、

【WordPress を専用ディレクトリに配置する】
http://wpdocs.sourceforge.jp/Giving_WordPress_Its_Own_Directory

上記の設定を行った後に起きる。と判明。これをやる前の環境ではちゃんとプレビューできるので。。。

なので、手順を追って最初からやり直してみると。。。

どうやら、
上記ページでいうところの 手順7 WordPress ディレクトリにある index.php と .htaccess ファイルを、あなたのサイトのルートディレクトリ(Blog address)へコピーする。

の手順を行う際に、WordPressディレクトリにある.htaccessファイルの中身を変更してしまっていたらしい事が判明。

WordPress専用ディレクトリが wp だとすると、本来は

■WordPressディレクトリの .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>

■ルートディレクトリの .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

という風になっていないといけないはずが(多分)

■間違ったWordPressディレクトリの .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

という風に、要するにルートに置いた.htaccessの中身がなぜか WordPressディレクトリにコピーされてしまっていた事が判明。

どうせ、自分でやっちゃった単純ミスなのだろうけど、あまりに嵌ったので一応書いておきます。