WordPress | ロリポップでパーマリンク変更したら404エラーになるときの解決方法

WordPress | ロリポップでパーマリンク変更したら404エラーになるときの解決方法

WordPress | ロリポップでパーマリンク変更したら404エラーになるときの解決方法

はじめに

先日の仕事でクライアントがロリポップのレンタサーバーを利用しており、簡単インストールサービスを利用してWordPressをインストールしました。インストールは簡単だったので助かりましたが、鉄板のパーマリンク変更で足踏みしてしまいました…。その際の備忘録です。

WordPress | ロリポップでパーマリンク変更したら404エラーになるときの解決方法

デフォルトの /?p=123 は問題ないのですが、それ以外は404エラーになってしまいます。

※エラーの原因・環境は様々ですので、当記事の内容がすべての場合に当てはまるとは限りません。

私はこの方法で解決しました

.htaccessをちゃんとUTF-8 BOMなしで保存し直した。

僕の場合はこの方法で404エラーがなおりました。WordPress Codexで記載されているとおり、.htaccessをちゃんとUTF-8 BOMなしで保存し直したら404エラーが解決しました!よかった!

.htaccessに記述したコードは下記のとおり。よくあるパターンのやつです。

[plain]RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L][/plain]









※お使いのWordPressの階層(サイトURL)によって異なりますのでコピペにご注意下さい。

そもそもWordPressのパーマリンクは、.htaccessにRewrite Ruleを記述することでURLを書き換えを許可しているわけです。デフォルトのURL(/?p=123)しか効かないということは、このRewrite Ruleが上手く働いていないということ。

.htaccess は WordPress SEO by Yoast プラグインで簡単に編集

WordPress | ロリポップでパーマリンク変更したら404エラーになるときの解決方法

ちなみにWordPress SEO by Yoastプラグインなら、.htaccessの書き換えも簡単ですよ!!エディタソフトによる文字コードのミスも防げますしね。今回の解決もこれのおかげ??

そのほかよくある解決策

.htaccessのパーミッション
WordPress | ロリポップでパーマリンク変更したら404エラーになるときの解決方法
.htaccessのパーミッションをサーバー推奨の設定にするのが基本的に安心。ロロポップの場合は、公式マニュアルで「604」を推奨されています。
僕はここを「644」のままパーマリンク変更したがために、WordPressによる自動書き換えが上手くできてなかったかもしれません。もう!ロリポップ!
このように「パーマリンク変更」時に.htaccessの自動書き換えが上手く行かない場合は、たいてい適切な(書き込み可能な)パーミッションへの変更で解決しますよ。
パーミッションについて / ホームページ / マニュアル - ロリポップ!
http://lolipop.jp/manual/hp/permission/
.htaccessの文字コードミス
WordPress | ロリポップでパーマリンク変更したら404エラーになるときの解決方法
今回の当記事がまさにこれでした。上記は「CotEditor」というエディタで編集している画面。.htaccessは文字コードをUTF-8にして記述しましょう。

UTF-8 BOMなしで保存

WordPress直下の.htaccessはとくに必ずUTF-8 BOMなしで保存しなおしてくださいね。

管理画面/パーマリンク設定 - WordPress Codex 日本語版

.htaccessの記述ミス
文字コードを間違うと、記号などが文字化けしちゃっている可能性があります。Shift-JISとUTF-8でもあり得ますのでご注意ください。
そのほか参考記事
http://blog.quall.net/opensource/151/
http://www.seotemplate.biz/blog/wordpress-tips/3912/

まとめ

以上、「WordPress | ロリポップでパーマリンク変更したら404エラーになる」でした。

※エラーの原因・環境は様々ですので、当記事の内容がすべての場合に当てはまるとは限りません。