http
からhttps
のサイトを採用するために実装しています。cPanel
でLet's Encrypt
を使用しています。共有ホスティング環境にいます。
これは私がそれを実装する方法です:
.htaccess
にこのコードを追加:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
session folder
のすべてのセッションを削除して、ログインページでリダイレクトします。または、データベースに保存されているすべてのCookieを削除します。
試して
メンテナンスモードはオフです
これは正しいことですか?そうでない場合は、その方法を教えてください。
更新
https://hstspreload.org のガイドラインに従うために、この.htaccess
コードをテストしました。
RewriteEngine On
RewriteCond %{HTTP_Host} ^example.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301,NC]
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_Host} !^www\.
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [L,R=301]
<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=10886400; includeSubDomains; preload"
</IfModule>
これは中程度の警告です:
警告:HTTPを介した不要なHSTSヘッダー http://example.com のHTTPページはHSTSヘッダーを送信します。これはHTTPには影響しないため、削除する必要があります。
ウェブホスティング事業を営んでいます。数百のクライアントが、無料のLetsEncrypt証明書を介してhttpsに切り替えています(または、怠け者ではありません)。
正直に言うと、あなたは物事を過度に複雑にしていると思います。ドメインにSSLをインストールしてから、何も変更せずにhttpsを使用してみて、どうなるかを確認してください。
開発者ツールコンソールを表示すると、さまざまなコンテンツの警告が表示される場合があります。これは最も重要なステップの1つです。混合コンテンツ、つまりhttpを使用してファイルが含まれている場合、secure南京錠は表示されません。
サイトをメンテナンスモードにする必要はありません。証明書がインストールされている場合でも、テスト中は他のユーザーが従来のhttpを使用できます。
それで問題がなければ、コードを.htaccessファイルに追加します。
テスト方法は次のとおりです。htps://example.comにアクセスして、アドレスバーに南京錠があるかどうかを確認します。ある場合は、機能しています。 insecure通知がまだある場合は、開発者ツールに戻って問題を探します。
あなたの提案通りにはしません。私の提案では、訪問者のエラーを可能な限り少なくすることで、プロセスをより詳細に制御できます。
https://
と入力して、自分で確認してください。できる限りテストを行う/修正する1。1 このような外部ファイルへのリンク ://www.example
またはURIにhttp:
を含まないhttps:
をお勧めします
2 セッションを削除する必要はありません。セッションはあなたとhttpsに転送される可能性が低いため(そうではありません)、またはその場で単純に期限切れになります。ユーザーがhttpsに切り替えられた場合、ユーザーは再度ログインする必要があります(気をつけてください)。