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

以上です。

This entry was posted in WordPress and tagged , , . Bookmark the permalink.

4 Responses to WordPress 2.6 のパーマリンク

  1. Pingback: Love Tokyo

  2. Powershift says:

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

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

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

  3. Pingback: みついれ@カオス - パーマリンクを変更した!twitter愛してる!

  4. Pingback: wordpress muの編集画面が404で表示できない « wordpress log

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">