web-dev-qa-db-ja.com

リダイレクトチェーンを修正する方法

誰かがこれを手伝うことができるかもしれないと思います。

私のサイトのクロールは、私のホームページにリダイレクトチェーンがあることを示しています。基本的にそれは私がから来ていることを示しています:

http:> https:> https://www.

チェーンなしでhttp://http://wwwから直接https://www.に行くためのすべてが必要です。

以下は.htaccessのコピーです。そこにエラーがある可能性があるかどうか誰でも見ることができます。

</IfModule>

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

さらに、私は彼らがと呼ばれるプラグインを持っていることを見ました

SSLセキュアでないコンテンツ修正プログラムがインストールされています。

それはその状況の下でこれを示しています:

Array (
[HTTPS] => on
[PHPHANDLER] => /usr/local/php70/bin/php
[HTTP_X_REAL_IP] => 109.158.20.158
[HTTP_X_FORWARDED_PROTO] => https
)

私はおそらくこれが問題と関係があるかもしれないと思います、どんな考えでも評価されます。

1
user2868832

非wwwからwwwへのリダイレクトは、間違いなくWordPressによって処理されています(後で)。 .htaccess内の既存のリダイレクトは、同じホスト上のHTTPからHTTPSのみです。近い将来に _ hsts _ を実装する予定がある場合は、これが実際には好ましい(読み取り:必要)方法です。だから、これは必ずしも "エラー"ではありません。

ただし、二重のリダイレクトを避けるために、wwwからwwwへのリダイレクト以外のリダイレクトを既存の.htaccessルールに組み込むことができます。例えば:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_Host} !^www\.example\.com
RewriteRule .* https://www.example.com%{REQUEST_URI} [R=301,L]

ドメインをハードコーディングせずに、一般的な(任意のドメイン)ソリューションを特に必要とする場合は、代わりに次のようにすることができます。

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_Host} !^www\.
RewriteCond %{HTTP_Host} ^(?:www\.)?(.+)\.?$ [NC]
RewriteRule .* https://www.%1%{REQUEST_URI} [R=301,L]

ここで、%1は、最後に一致した CondPattern にあるホスト名への後方参照です(www.プレフィックスを除く)。ただし、これ以上修正しないと、この「一般的な」解決策でもサブドメインがリダイレクトされます。

0
MrWhite