ブログを書いて・公開するのに使う、WordPressテクニックの話題です。
サーバー移転を行った時に、トップページは表示できたけど、記事・アーカイブページに行くと『404 not found』となってしまう、記事が見えないトラブルが起こる場合があります。
”データベースも必要なファイル”も、きちんと新しいサーバーに移行しているのに?なぜだろう?というトラブルです。解決方法を一緒に考えたトラブルでした。
このトラブルは『パーマリンクを設定している場合』に起こる時が有り、解決方法は管理画面の『パーマリンク設定のページで何も変更せずに”設定を保存”をクリック』すれば、オッケーでした。
解決したけど原因は?その点が分かり易い記事を見つけた
その時は解決するのに”一杯一杯”で、なぜ?ということより、表示できた!っいうことで終わっていました。
どうしてトラブルが起こるのか?技術的な面から”なるほど”という記事を読みましたので、ご紹介します。
今回、遭遇したトラブルをおさらい
こちらの林齧macさんの記事にて『トップページは正常だが、記事ページが表示されない』という部分です。
治し方は、あっけないほど簡単。
WordPressへログインし、設定>パーマリンク設定で、何もせずに「設定を保存」をクリックするだけ。
これだけで、何事も無かったのごとく正常に動き始めました。
参考:ワードプレスで個別記事が404になった時は | NO:1015 | IQ150のタクマが教えるインターネットビジネス
この時は、トラブルを解決できて良かった!ということで終わっていました。
天使は急にやって来る!
このトラブルも忘れていたのですが、@azur256さん ”最近,気になったこと”の記事を読んでいた時です。
『あ!』
トラブルの原因が分かりやすく書かれていました。感謝です。
リストアした状態だと、トップページは表示されるのに個別のアーカイブページが表示できませんでした。
同じトラブルです。
普通に考えるとPHPがおかしいか.htaccessがおかしいかです。
普通に考えると、頭がまっしろになってそこで止まります。PHP?ましてや.htaccessに原因があるとは思いません。ものくろは。笑。
Debug ログに何らかエラーがでるはずですがそういうものは見当たりません。
エラーログ大切。勉強になります。今度からそこを始めに見ることにします。
ここテストに出ます。大切ですよ。
なんとパーマリンクを設定している場合 .htaccess は自動で生成されるそうです。自分は数字ベースのパーマリンクを設定しているので、まさにコレが原因のようです。
知らなかったです。パーマリンク設定はそういう仕組みだったんですね。WordPress Codex に資料があることも書かれているので、勉強になります。
WordPress を専用ディレクトリに配置する – WordPress Codex 日本語版
パーマリンク設定のページで何も変更せずに「設定を保存」を押すと .htaccess が自動生成されました。
今回の対応方法と同じです。『なにも変更しない』のがポイントです。クリックした時に .htaccessが作られていたのですね。
内容は見てもわからないので調べました。
RewriteRuleがキーワード
なんかワケワカメな呪文が書いてあるのですが、ポイントは下の2つです。
[code]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
[/code]
”URLで指定されたファイルやディレクトリが見つからなければ、WordPressに丸投げしちゃいな”
こんな意味です。”ルーラ”見たいなコマンドです。これがないから、WordPreeの個別記事に行けないんですよね。なるほど。
参考:mod_rewriteのインストール・設定 – RewriteRuleのサンプル [Fedora, RedHat, CentOS] – Linux
ちなみに、ものくろぼっくすは”?=なんちゃら”という変なリンクです。Getクエリだから、基本なのです。そんなこんなで今までトラブルに”遭っていなかったんだ”と気づきました。
2つの記事から勉強になりました。感謝。
エムディエヌコーポレーション
売り上げランキング: 306,437
インプレスジャパン
売り上げランキング: 197,419
技術評論社
売り上げランキング: 189,173