[英]HTTPS only on specific page with .htaccess
我有一個URL,例如http://www.domain.com/index.php?p=register
。 我想重定向使用HTTPS(SSL)與.htaccess,但僅限於此,以及其他幾個頁面(登錄頁面等),但不是整個站點。 URL不指向目錄,但用於動態包含不同的文件。
有人可以給我一個指針或一個如何讓單個頁面重定向到HTTPS的例子嗎?
謝謝。
不是htaccess,但另一種方法可能是使用PHP重定向:
<?php
$redirectlist = array('register','login','myaccount');
if (in_array($_GET['p'], $redirectlist) && strtolower($_SERVER['HTTPS']) != 'on') {
exit(header("location: https://{$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}"));
}
?>
我提到這一點的唯一原因是,在某些情況下,這可能比單獨的htaccess更容易維護。 在輸出任何文本之前,您需要在PHP內容中放置它(請參閱header() )。
這樣的事情應該有效:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{QUERY_STRING} (^|&)p=(register|login|or|other|protected|page)($|&)
RewriteRule (.*) https://www.domain.com/index.php [R=301,QSA,L]
一些解釋:
如果您可以選擇遵循php方法,我建議您遵循該方法或使用任何其他動態語言。 您必須避免使用htaccess,因為該頁面上的圖像,js和其他聯系人的鏈接將被強制為非SSL,而現代瀏覽器將顯示不合規標志,這可能看起來對您的SSL成本進行粉飾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.