0
如何測試請求是否來自http URL(即使https可能已啓用)。如果https打開,我想要提供https頁面元素。htaccess重寫規則測試請求的http元素
如何測試請求是否來自http URL(即使https可能已啓用)。如果https打開,我想要提供https頁面元素。htaccess重寫規則測試請求的http元素
一個常見的方法是使用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]
頁面正在使用https,但正在加載的圖像使用http 。我該如何測試? –
你最初的問題是如何「測試」請求是http還是https,但我不確定你想要做什麼測試。想想我現在有一個更清晰的畫面。如果頁面本身是https,您希望確保將子元素的請求重定向到https。我用另一個例子更新了答案。 –
我讀的是,如果它是https,則referer爲null。 –