簡體   English   中英

SSL到非SSL htaccess重定向的問題

[英]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.

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