はじめに
先日の仕事でクライアントがロリポップのレンタサーバーを利用しており、簡単インストールサービスを利用してWordPressをインストールしました。インストールは簡単だったので助かりましたが、鉄板のパーマリンク変更で足踏みしてしまいました…。その際の備忘録です。
デフォルトの /?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 SEO by Yoastプラグインなら、.htaccessの書き換えも簡単ですよ!!エディタソフトによる文字コードのミスも防げますしね。今回の解決もこれのおかげ??
そのほかよくある解決策
- .htaccessのパーミッション
- .htaccessのパーミッションをサーバー推奨の設定にするのが基本的に安心。ロロポップの場合は、公式マニュアルで「604」を推奨されています。
- 僕はここを「644」のままパーマリンク変更したがために、WordPressによる自動書き換えが上手くできてなかったかもしれません。もう!ロリポップ!
- このように「パーマリンク変更」時に.htaccessの自動書き換えが上手く行かない場合は、たいてい適切な(書き込み可能な)パーミッションへの変更で解決しますよ。
- パーミッションについて / ホームページ / マニュアル – ロリポップ!
http://lolipop.jp/manual/hp/permission/
- .htaccessの文字コードミス
- 今回の当記事がまさにこれでした。上記は「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エラーになる」でした。
※エラーの原因・環境は様々ですので、当記事の内容がすべての場合に当てはまるとは限りません。