2011-05-12 80 views
6

嘿人。我看到這個話題一遍又一遍的重複着,但我嘗試了幾個解決方案,這裏沒有一個適合我。所以基本上 - 我知道如何更改我網站上的特定頁面,以便它們處於https模式。但是,我不知道如何重寫內部代碼中的http請求。舉例來說,如果我的網頁,比如說payment.php包含加載外部ccs文件的鏈接 - >http://example.com/somecss.css,那麼google chrome會將其視爲危險鏈接,並在站點網址旁邊顯示紅色的掛鎖。現在,我已經通過將代碼內的所有http請求更改爲https來手動測試它,並且掛鎖魔法變爲綠色,所以我想我需要某種類型的mod重寫規則來重寫這些特定頁面上的所有鏈接,以便它們能夠包含https。我希望我解釋得很好。誰能幫我?我正在使用codeigniter。如何在http網站的特定頁面上將http請求重寫爲https?

+0

檢查$ _ SERVER [「HTTPS」]當你正在構建的URL的本地資源。 – mikeds 2011-05-12 15:06:33

回答

3

要重寫代碼中的http請求,必須使用協議相關路徑。

<link rel="stylesheet" href="//www.domain.com/style.css"> 
<script src="//www.domain.com/script.js"></script> 

它會自動使用父頁面協議

+1

是的,謝謝! – Pavel 2011-05-12 16:00:53

2

您必須確保用戶通過安全連接瀏覽您的網站。您可以將用戶重定向到安全連接(https://開頭)使用包含以下行的.htaccess文件:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] 

請注意,.htaccess應位於網站主文件夾。

如果要強制HTTPS你可以使用一個特定的文件夾:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} somefolder 
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L] 

.htaccess文件應該放在哪裏,你需要強制HTTPS的文件夾中。

+0

是的,我使用這個,它工作正常,但它不會重寫代碼內的http請求。 – Pavel 2011-05-12 11:35:28

+6

哦!你的意思是CSS和JavaScript? – 2011-05-12 13:30:48

+0

是的。這可能嗎? – Pavel 2011-05-12 13:38:08

相關問題