本サイトではアフィリエイト広告を利用しています

WordPress サーバー 設定

[WordPress]LiteSpeedで内部リンクを踏むと404エラーになるケースに対処する

本ページはこんな方におすすめ

  • LiteSpeed サーバーでの内部リンクが404エラーになった
  • LiteSpeed サーバーで404エラーが多発するようになった
  • VPSでOpenLiteSpeed を利用している
  • 自作サーバーでOpenLiteSpeed を利用している

本ケースはウェブサーバーにOpenLiteSpeedを利用しているケースを例にしています。

症状

LiteSpeed 404エラー
ウェブサーバーに WordPress をインストールし運用していたが、サーバーのバージョンアップやサイトの引っ越しの後、サーバーにアクセスし、内部リンクを踏むといつも404エラーページに飛んでしまう。
なお、サーバー(サイト)のトップページにはアクセスできる。
サーバーの設定も一応問題ない(つもり)。

気持ち悪いところ

内部リンクだけでなく、WordPressで記事をプレビューする時も404エラーになる。
でも、データベースは無事で、ファイルのパーミッションとかも問題なさそう。

サーバーをアップデートする前はまともに動いていた(気がする)。

解決

WordPress を動かす時だけに、現存するページを踏むと404エラーが多発するという現象だったので、リライト系のモジュールのエラーだと見込みをつけました。

WordPress は内部でURLのリライトを頻繁に行うものなので、例えば記事IDでアクセスしても、パーマリンクでアクセスしても同じページを表示してくれたりするのはそういう理由からです。

それでく、リライトまわりの設定をチェックしていきます。

.htaccessの確認

WordPress のルートディレクトリにある .htaccess ファイルの中身を確認します。
確認すると、以下のような内容になっていました。

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

記述を確認する限り問題なさそうです。
バージョンアップに際し何か新しい記述が必要なわけでもなさそうです。
上の記述が無かったり、.htaccess ファイルそのものが見つからない方は、同じ内容のファイルを作成してアップロードするなどしてください。
ファイルのパーミッション(属性)は604にしてください。サーバーによっては644でもよいかもしれません。

私の場合はこれでは解決しなかったので、電気のスイッチの入れ忘れ的なミスを疑い始めました。

そもそも Rewrite が有効になっているのかどうかを再確認

今まで普通に動いていたようなケースでは、初歩の初歩を見落としがちです。
私の場合はこれでした。

OpenLiteSpeed の管理画面に入ります。
設定ファイルを直接書き換えてもいいのですが、ここではWebインターフェイスで行います。
私の場合、サーバーのアドレスが 192.168.1.2 ですので、ブラウザの URL に 192.168.1.2:7080 といれて、ID とパスワードで管理画面にアクセスします。

OpenLiteSpeed-admin

ログインできたら、左側の「Server Configuration」をクリックし、「General(一般)」設定項目の「Rewrite Control」を確認します。

OpenLiteSpeed-general-server-configuration

「Rewrite Control」の設定値が「Not Set」や「No」になっている場合は Rewrite Control が働きませんので、値を「Yes」に変更します。

OpenLiteSpeed-Rewrite-Control

設定を終えたら、Webサーバーを再起動します(もしくは-HUPシグナルで設定変更を有効にします)。

再度、WordPress にアクセスし内部リンクをクリックして404エラーにならなかったら、設定成功です。

-WordPress, サーバー, 設定
-,