Plugin

ワードプレスで「リダイレクトが繰り返し行われました」というリダイレクトエラーが多発する原因と解決法

ワードプレスで「リダイレクトが繰り返し行われました」というリダイレクトエラーが多発する原因と解決法

リダイレクトエラーが多発する原因として考えられるのは、リダイレクトルールの競合やループです。特に以下のポイントに注目して確認する必要があります:

1. 複数のRewriteEngine On

複数のRewriteEngine Onディレクティブが使用されていますが、これは問題にはなりません。ただし、リダイレクトルールが複数あることでルールが競合している可能性があります。

2. リダイレクトループの可能性

異なるリダイレクトルールが相互に影響し合って、無限ループを引き起こしている可能性があります。以下の部分を特に注意して確認してください:

スマホリダイレクトルール

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteCond %{QUERY_STRING} !mode=pc
RewriteRule ^$ /sp/ [R,L]
</IfModule>

HTTPS強制リダイレクトルール

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule>

WordPressルール

<IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>

これらのルールが組み合わさることで、リダイレクトループが発生している可能性があります。

スポンサードリンク

3. スマホリダイレクトとHTTPS強制リダイレクトの競合

スマホ向けにリダイレクトするルールとHTTPS強制リダイレクトのルールが同時に適用され、ループが発生する可能性があります。例えば、スマホからのアクセスが/sp/にリダイレクトされ、その後HTTPSへのリダイレクトが発生し、再びスマホリダイレクトが適用されるといった状況です。

修正提案

スマホリダイレクトのルールとHTTPS強制リダイレクトのルールの順序を変更し、スマホリダイレクトのルールをHTTPS強制リダイレクトの後に配置することで、競合を避けることができます。

#Begin Really Simple Security
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
#End Really Simple Security

# スマホリダイレクトルール
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteCond %{QUERY_STRING} !mode=pc
RewriteRule ^$ /sp/ [R,L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# BEGIN EWWWIO
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} image/webp
RewriteCond %{REQUEST_FILENAME} (.*)\.(jpe?g|png|gif)$
RewriteCond %{REQUEST_FILENAME}.webp -f
RewriteCond %{QUERY_STRING} !type=original
RewriteRule (.+)\.(jpe?g|png|gif)$ %{REQUEST_URI}.webp [T=image/webp,L]
</IfModule>
<IfModule mod_headers.c>
<FilesMatch "\.(jpe?g|png|gif)$">
Header append Vary Accept
</FilesMatch>
</IfModule>
AddType image/webp .webp
# END EWWWIO

# BEGIN LiteSpeed
<IfModule Litespeed>
SetEnv noabort 1
</IfModule>
# END LiteSpeed

注意点

  • 各リダイレクトルールが意図通りに動作するか、テスト環境で確認してください。
  • 特にスマホリダイレクトとHTTPS強制リダイレクトの動作が重ならないように注意してください。
  • WordPressの設定がリダイレクトに影響を与えないかも確認が必要です。

この修正により、リダイレクトエラーやループの発生が解消される可能性が高くなります。

スポンサードリンク
URL
TBURL

LEAVE A REPLY

*
*
* (公開されません)

COMMENT ON FACEBOOK

CREATOR

WebCreator
自然で遊ぶことが大好きなサーファーです。 ウェブメディア事業を行なっています。個人の時代で頑張るあなたをインターネットの力で応援します。夢は自然栽培による無農薬野菜を全世界に普及させていくこと。
Return Top