https自分のウェブサイトのログインページを、完全なウェブサイトではなく、のみで
開きたい。ログイン認証(成功)後、ウェブサイトwhoudが再び実行されhttpます。
現在、私のメインのログインページはtest_index.php私が含まれている場所ですtest_header.php
私の基本的なコードtest_header.phpは
if($_SERVER['SERVER_PORT'] != 443) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
}
しかし、これで完全なWebサイトが作成されhttps
ます。ここでも、を介して可能であることが.htaccessわかります。そのため、上記のコードスニペットをから削除し、ファイルtest_header.phpに次の行を追加します。.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
# 301 redirect to domain to 'www.'
RewriteCond %{HTTP_HOST} ^testweb.com$ [NC]
RewriteRule ^(.*)$ http://www.testweb.com/$1 [R=301,L]
</IfModule>
<FilesMatch test_index.php>
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</FilesMatch>
注:testweb.comは単なる架空の名前であり、実際のWebサイトではありません
しかし、まだ完全なWebサイトはhttpsで実行されていますが、どこで間違いをしているのか教えてください。
編集
@webbiedave私の更新されたコードを確認してください、それは正しい方法ですか?
if ($_SERVER['REQUEST_URI'] == '/test_index.php') { // only check https on login
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
} else {
die("Sorry,Your website is not secure");
}
} elseif (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
// header("HTTP/1.1 301 Moved Permanently");
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
}
ありがとう