[英]Problems with SSL to non-SSL htaccess redirect
我需要有關URL重寫的幫助。
我只需要1個動態頁面(登錄)即可通過SSL處理,所有其他頁面都需要重定向到HTTP。
所以這是我的.htaccess文件:443 virtualhost:
RewriteEngine on
RewriteRule ^signin$ https://www.page.com/?s=signin [L,NC]
RewriteCond %{REQUEST_URI} !^\/(signin)+ [NC]
RewriteRule ^(.*)$ http://%{SERVER_NAME}/$1 [R=302,L]
發生的是, https://www.page.com/signin
http://www.page.com/?s=signin
通過302重定向重定向到了http://www.page.com/?s=signin
我究竟做錯了什么?
您的問題已用PHP標記。 您的登錄頁面是PHP嗎?
將其添加到登錄頁面的頂部,該頁面將強制使用HTTPS。
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == "") {
$redirect = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
header("Location: $redirect");
}
好的,我將此作為一個apache問題。 要解釋似乎首先發生的事情:
您的第一個規則重定向到
https://www.page.com/?s=signin
這不符合REQUEST_URI條件!^ /(signin)+; 所以第二條規則重定向到
http://www.page.com/?s=signin
可能您的病情應該類似於以下內容:
RewriteCond %{REQUEST_URI} !^\/\?s=signin [NC]
要查看mod_rewrite的確切功能,請啟用重寫日志(如果可以)-具體方法取決於apache版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.