どもです。
WordPress+静的ページで構築されたサイトを公開したのですが、ちょっとしたトラブルに見舞われたのでメモ。
先に述べておきますが、今回の事案は全て初歩的なミスが原因でした。
頭にボケが回ってないか少し心配になりました。(´・ω・`)
発生事案と状況
- サイトは/トップディレクトリ/pre/という形で、既存サイトのサーバー中に構築されていた
- /pre/の内容をトップディレクトリに上げ、WordPressの管理画面からサイトアドレスを変更した
- 静的ページは全て問題なく閲覧できるが、WordPressで生成したページが全て404
- この404は404テンプレートではなく、デフォルトの404エラーページ
- フッターにWordPressの内容を表示させるため静的ページでもWordPressが動かせるよう設定し、テンプレートにインクルードしたが、そちらは問題なく稼働
①index.phpは忘れずに置いているか
index.phpを置き忘れていました。
稼働中のサーバー・ドメイン上への公開のため、トップページには「メンテナンス中」のindex.htmlを置いていたためになかなか気づかなかったのです。
indexでなくとも、index.phpは必須です。
これを設置したことで、デフォルト404からWordPressテンプレートの404に変化しました。
まだ404でした(´・ω・`)
②.htaccessの記載は正しいか(又は.htaccessのパーミッションは適切か)
パーマリンクの空更新をしても、.htaccessが書き換わらなければ意味がありません。
本来、.htaccessの記載方法が合っていれば書き込みできない状態でも大丈夫なハズですが…。
今回の事案では、.htaccessの所有者がこちら(apacheではない)になっていて、パーミッションが604になっていました。
これを644にしてパーマリンクの空更新をしたところ、正常に表示されるようになりました。
.htaccessの推奨パーミッションは604ですが、これは所有者がapache(WordPress側)のときだけっぽいですね。
ちなみに、600だと全ページ403エラーになりました。(゚∀゚)