”ERR_TOO_MANY_REDIRECTS”の対処方法

WordPressを専用フォルダーに設置した場合、これまでのURLでも専用フォルダーに行けるようにhtaccessの内容を変更します。しかし、上記のエラーメッセージ:ERR_TOO_MANY_REDIRECTSに悩まされます。これは以下のようにhtaccessを2つ用意することで解決できます。

htaccessが無限ループに!?
htaccessが無限ループに!?

Initializing...

症状: リダイレクトの無限ループ(”ERR_TOO_MANY_REDIRECTS”)が発生する
対象: WordPress
作成日: 2019年10月17日

wpフォルダーにインストールした場合

ルートに配置する.htaccessファイル

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wp/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wp/$2 [L]
RewriteRule . index.php [L]	
</IfModule>

これだけだと、エラーとなるため。wpフォルダー配下にももう一つ.htaccessファイルを用意する。

専用フォルダーに配置する.htaccessファイル

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
リダイレクトの無限ループを押さえるため、wpフォルダー配下にも.htaccessを用意するのがミソです!

こんな効果も

上記の2つのhtaccessファイルを用意することで、従来の/wp-content/uploads/~にあったメディアファイルのアクセスの自動で/wp/wp-content/uploads/~に変換してくれるので、既存の記事も修正する必要がありません。

設計時とは異なるフォルダーにWordpress本体を移動した場合、記事中のメディアなどの参照先も変更しないと表示してくれません

参考:htaccessファイルの書き方

htaccessファイルの正しい書き方や用法は以下の記事を参考にしてください。

コメント

タイトルとURLをコピーしました