前回の投稿「WordPress 日本語版 2.6」で「WordPress 2.6 のパーマリンクの一部がうまく機能しない」と書きましたが、その対策がわかりましたのでお知らせいたします。詳細は色々と調べる必要がありそうですが、今のところうまく機能しているようです。ご参考まで。
概要は以下のとおりです。
サーバー上の WordPress 日本語版 を 2.5.1 から 2.6 にアップグレードしてから、パーマリンクの「日付と投稿名」などがうまく機能しなくなりました。「日付と投稿名」に限らずデフォルト以外の設定にすると、投稿内容やページをクリックした際に「エラー 404 – 見つかりませんでした」と表示されます。サーバーの環境は、今までと同じファーストサーバの共有サーバーです。PHP や MySQL も特に変わってません。ローカル環境でも試していましたが、特に問題はありませんでした。
まずは以下のページで調べてみました。
mod_rewrite や .htaccess に問題があるのではと思い、ネットで「mod_rewrite ファーストサーバ」と検索したら、それらしい記事(以下参照)が1番目にヒット!
.htaccess にあるコードを加えるというものです。以外とあっさり問題が解決しました。ありがとうございます。大変助かりました。以下は実際に私が行った内容です。
まずは、.htaccess の編集です。
サーバーの wp ディレクトリにある .htaccess に以下のようなコードを追加します。RewriteBase /virtual/www/wp/ と RewriteRule . /wp/index.php [L] の部分は、ご利用の環境に応じて変更してください。
ーーーーーーーーーーここからーーーーーーーーーー
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /virtual/www/wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
ーーーーーーーーーーここまでーーーーーーーーーー
この例の WordPress のホームページは、http://ドメイン名/wp/ です。ここで使用しているファーストサーバの共有サーバーは、/virtual/www 以下が http://ドメイン名/ でアクセスされます。
上記のコードを追加すると、.htaccess は以下のようになります。php_flag や php_value の箇所については、過去の投稿「ファーストサーバに WordPress 日本語版をインストール」をご覧ください。
ーーーーーーーーーーここからーーーーーーーーーー
php_flag mbstring.encoding_translation off
php_value default_charset “UTF-8″
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /virtual/www/wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
ーーーーーーーーーーここまでーーーーーーーーーー
ちなみに、私がローカル環境で試した WordPress では、以下のような .htaccess が自動的に生成されていました。この例の WordPress のホームページは、http://localhost/wp/ です。
ーーーーーーーーーーここからーーーーーーーーーー
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
ーーーーーーーーーーここまでーーーーーーーーーー
次に、WordPress のパーマリンクの設定を変更します。WordPress の管理ページにログインし、「設定> パーマリンク設定」を開きます。この例では一般的な設定を「日付と投稿名」とします。「日付と投稿名」のボタンの横に以下のようなリンク例が表示されます。
http://www.powershift.ne.jp/wp/index.php/2008/07/27/sample-post/
今までは特に気にすることなくこのまま利用していましたが、WordPress 2.6 では更にこの内容をカスタマイズする必要があります。一般的な設定から「カスタム構造」を選び、日付と投稿名のリンク内容の先頭にある「/index.php」を削除します。
/index.php/%year%/%monthnum%/%day%/%postname%/
↓
/%year%/%monthnum%/%day%/%postname%/
これで OK です。「日付と投稿名」以外にする場合も同じように「/index.php」を削除します。ちなみに、ローカル環境で試した WordPress の「日付と投稿名」のリンク例には「/index.php」が含まれていませんでした。この場合は、編集することなく利用できるようです。
以上です。
wordpress日本語URLの設定
パーマリンクにて/%postname%/等を設定すると404 Not Found…
ピンバックありがとうございます。
日付の場合は秒まで入れないとダメなんですね。いろいろ勉強になります。私はpostnameを使って設定していますが、他の設定にしようかと検討中です。
MU もインストールしたいと思っていますので、そのときは参考にさせていただきます。
[...] 同じ症状の方のを教えてもらいました…ありがとうございます>< WordPress 2.6 のパーマリンクだそうで たしかにパーマリンクを変更するとパーマリンク設定画面下記にへんこうしてくだ [...]
[...] WordPress 2.6 のパーマリンク « Powershift http://www.powershift.ne.jp/wp/2008/07/27/wordpress-26-permalinks/ [...]