簡體   English   中英

僅在特定頁面上使用HTTPS-Htaccess,Apache,OpenSSL

[英]HTTPS only on specific pages - Htaccess, Apache, OpenSSL

我正在嘗試使HTTPS能夠按我的意願工作,但是沒有運氣。 我想做的是讓網站瀏覽http和特定網址上的https。 具體的網址是:reg.php和glomtpass.php。

但是,當我嘗試該代碼時,它顯示:“此網頁具有重定向循環”。 經過一堆嘗試后,它仍然存在該錯誤。

我現在在.htacess中使用的HTTP-> HTTPS代碼:

RewriteCond %{HTTPS} on
RewriteCond %{SCRIPT_FILENAME} !\/(reg|glomtpass)\.php [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

任何幫助表示贊賞!

如果在頁面頂部添加功能文件不是很麻煩,那么這就是我檢查在php中移入和移出HTTPS的方式。 要使用它,只需將文件放入所有腳本中即可。

功能文件

<?php

$scriptsWithSSL = array('reg.php','glomtpass.php');
if (in_array(end(explode('/', $_SERVER['PHP_SELF'])), $scriptsWithSSL) === true) {
    //we are on a page we want to be HTTPS. will become HTTPS if requested with HTTP
    if ($_SERVER['HTTPS'] == '' || $_SERVER['HTTPS'] == 'off') {
        header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . $_SERVER['QUERY_STRING']);
        exit;
    }
} else {
    //page should not be HTTPS and will move to HTTP if requested with HTTPS
    if (strtolower($_SERVER['HTTPS']) == 'on') {
        header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . $_SERVER['QUERY_STRING']);
        exit;
    }
}
?>

這將是在$scriptsWithSSL數組中找到的任何腳本,如果未通過HTTPS請求將其移至HTTPS。 否則,其為正常頁面,如果未通過HTTP請求,則將從HTTPS移至HTTP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM