ホームページ > バックエンド開発 > PHPチュートリアル > .htaccess と mod_rewrite を使用して SSL/HTTPS を強制する方法は?

.htaccess と mod_rewrite を使用して SSL/HTTPS を強制する方法は?

DDD
リリース: 2024-12-30 12:24:17
オリジナル
215 人が閲覧しました

How to Enforce SSL/HTTPS Using .htaccess and mod_rewrite?

.htaccess と mod_rewrite を使用した SSL/HTTPS の強制

.htaccess と mod_rewrite を使用して SSL/HTTPS を強制するには、いくつかの方法が利用可能です。

使用中mod_ssl

Apache の mod_ssl は、HTTPS が有効でない限りアクセスを制限する SSLRequireSSL ディレクティブを提供します。このディレクティブを SSL が有効な仮想ホストまたはディレクトリに追加すると、機密データの公開を防ぐことができます。ただし、このメソッドは HTTPS にリダイレクトしません。

mod_rewrite の使用

HTTPS にリダイレクトするには、.htaccess ファイルで mod_rewrite を使用します:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
ログイン後にコピー

代替案アプローチ

HTTPS を強制するための追加オプションは次のとおりです。

  • 「RewriteRule を使用した HTTP-HTTPS (SSL リダイレクト)」で概説されているメソッド: http://www.askapache.com/htaccess/http-https-rewriterule-redirect.html

PHP ベースのソリューション

の場合。 htaccess は無効になっていますが、PHP は使用できます:

if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
    if(!headers_sent()) {
        header("Status: 301 Moved Permanently");
        header(sprintf(
            'Location: https://%s%s',
            $_SERVER['HTTP_HOST'],
            $_SERVER['REQUEST_URI']
        ));
        exit();
    }
}
ログイン後にコピー

以上が.htaccess と mod_rewrite を使用して SSL/HTTPS を強制する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート