WordPress 2.6 のパーマリンク

前回の投稿「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」が含まれていませんでした。この場合は、編集することなく利用できるようです。

以上です。

こちらの記事もどうぞ

  • Delicious
  • Google Bookmarks
  • Facebook
  • Twitter
  • Hotmail
  • Share/Bookmark

タグ: , ,

コメント / トラックバック4件

  1. Love Tokyo より:

    wordpress日本語URLの設定

    パーマリンクにて/%postname%/等を設定すると404 Not Found…

  2. Powershift より:

    ピンバックありがとうございます。

    日付の場合は秒まで入れないとダメなんですね。いろいろ勉強になります。私はpostnameを使って設定していますが、他の設定にしようかと検討中です。

    MU もインストールしたいと思っていますので、そのときは参考にさせていただきます。

  3. [...] 同じ症状の方のを教えてもらいました…ありがとうございます>< WordPress 2.6 のパーマリンクだそうで たしかにパーマリンクを変更するとパーマリンク設定画面下記にへんこうしてくだ [...]

コメントをどうぞ