2016-02-24 38 views

回答

2

一個常見的方法是使用RewriteCond檢查HTTPS env var是打開還是關閉(on = https,off = http)。例如,這種檢查,如果該請求進來通過HTTP,如果沒有,返回故宮403:

RewriteEngine On 
RewriteCond %{HTTPS} !on 
RewriteRule .* - [F] 

這需要啓用重寫模塊。

修訂(其它示例)

強制所有頁面元素到HTTPS如果頁面本身(引薦)是位於https:

RewriteCond %{HTTPS} !on 
RewriteCond %{HTTP_REFERER} ^https: 
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] 

或者,如果你知道這只是圖像(文件類型)你需要趕上,你可以使RewriteRule更有效率,如:

RewriteCond %{HTTPS} !on 
RewriteCond %{HTTP_REFERER} ^https: 
RewriteRule ^.*\.(gif|png|jpe?g)$ https://%{HTTP_HOST}%{REQUEST_URI} [L] 
+0

頁面正在使用https,但正在加載的圖像使用http 。我該如何測試? –

+1

你最初的問題是如何「測試」請求是http還是https,但我不確定你想要做什麼測試。想想我現在有一個更清晰的畫面。如果頁面本身是https,您希望確保將子元素的請求重定向到https。我用另一個例子更新了答案。 –

+0

我讀的是,如果它是https,則referer爲null。 –