私はphpベースのウェブサイトを持っています。...SSLを使用しようとしています。..SSLはサイトで正常に動作しています。問題は、httpsでリダイレクトされないことです。 そして、私は.htaccessファイルを編集しようとしましたが、動作しません... また、私のサイトはこの形式で開いていますexample.org/index.html 〜と /index.html
私はこれを使用しようとしていますが、動作していません
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301]
.htaccessコード:
RewriteEngine On
RewriteBase /
#AuthUserFile /home/products/html/path/.htpasswd
#AuthGroupFile /dev/null
#AuthName "Private Area"
#AuthType Basic
#<Limit GET POST>
#require valid-user
#</Limit>
<FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=31536000, Public"
</IfModule>
</FilesMatch>
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+).html$ $1/?%{QUERY_STRING}
-------urls---------
RewriteRule ^index/$ path/index.php
RewriteRule ^index/([^/]+)/$ path/index.php?list=$1&%{QUERY_STRING}
回答:
回答№1は0PHPを使用してリダイレクトできます。
この関数を使用して、リクエストがHTTPSかどうかを確認します。
function isHttps() {
return (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] === "on") || $_SERVER["SERVER_PORT"] === 443;
}
次に、リクエストがHTTPSでないかどうかを確認し、リダイレクトします。
if (!isHttps()) {
header("location: https://www.example/index.php");
}
回答№2の場合は0
安全なページへの強制リダイレクト:
if ($_SERVER["SERVER_PORT"] != "443") {
header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
exit();
}