初めに
もともとレンタルサーバで用意されていたサブドメインにWordPressをインストールして試していたのですが、新しく自分用のドメインを取得したので、先日インストールしたWordPress資材をもろもろ、新しいドメインに関連付けをしようと思い、
WordPressの管理画面にて「設定」→「一般設定」→「サイトアドレス (URL)」のURLを変更しました。
ちなみに、私が利用しているホスティングサービスはマルチドメインをサポートしていて、WordPressをインストールしているURLとサイトとして見せるURLを関連づけることができるようです。
これまでWordPressインストール先かつ、外部に見せていたURLは以下のようなイメージで、
新しく取得したドメインは
という関連付けのイメージです。
動作確認
そのあと、動作確認をしようとトップページにつなげると正常(https://[自分が取得したドメイン名].jp/)に繋がりました。
さて、リンクをいくつかトレースしようと思い、サイト内のリンクを押したら・・・
500 Internal Server Error
ブラウザが遷移し、上のようなメッセージが出ました。サーバーエラー??
「サイトアドレス (URL)」を元のサイトに戻すとちゃんと表示されます。謎ですね。
では、上の通りサーバー内部エラーとあるので、サーバのログでも見るかとレンタルサーバなので提供されている管理画面から覗いて見ると
AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
内部のリクエストが10回の制限に引っ掛かりエラー??ログレベルをデバッグにしてトレースをみろと。
修正内容
サーバ内のアクセスで問題を起こしているようなので、よくある事例としては.htaccessの書き間違いの可能性があり、.htaccessを見たところ、
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
となっています。ディレクトリ名が違っているようですね。これだと
ということで、こんな感じに直してみました。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
再度、ページを読み込み、リンクを押したところ、正常に遷移しました。
よかった。
補足
あとから知ったのですが、「設定」→「パーマリンク設定」→「オプション」を見ると、本当は正常に遷移した修正内容が上書きされるはずだったようですが、書き込み権限の問題なのか上書きできなかったようです。最新のファイル権限を見ても問題がなかったため、原因不明ですが、再発した際には確認したいと思います。