[英]Moving from HTTP to HTTPS on Laravel behind CloudFlare
我在laravel 5.2上有一個應用程序。 它在HTTP上運行正常。
我使用asset
函數生成完整的URL而不是使用相對的
<link rel="stylesheet" type="text/css" href="{{ asset('/css/bootstrap.min.css') }}">
根據此處的 laravel文檔, asset
方法會自動檢測請求協議並相應地生成URL。
現在應用程序沒有在HTTPS上運行,我可以將secure_asset
用於HTTPS URL,但隨后它將停止在HTTP和localhost
上運行。
我知道有一些我缺少的東西,使用laravel
從HTTP遷移到HTTPS並不是那么困難
PS - Cloudflare
用於提供HTTPS
請求。
到目前為止給出的所有答案都是正確的但沒有解決我的問題
主要問題是我的應用程序支持CloudFlare
Laravel通過檢查HTTP標頭檢測到一個安全或不安全的請求,即$_SERVER['REQUEST_SCHEME']
,即使由於cloudflare而請求為HTTPS,仍為HTTP。
CloudFlare為同一個設置不同的標頭,即$_SERVER['HTTP_X_FORWARDED_PROTO']
必須檢查以檢測請求是否安全
下面這個文章,並無需對以前的應用程序代碼進行任何更改作出一些改變這個我成功地設法生成HTTPS URL。
訪問請求要通過依賴注入獲取當前HTTP請求的實例,您應該在控制器構造函數或方法https://laravel.com/docs/5.2/requests#request-上鍵入提示Illuminate\\Http\\Request
類。 信息
如果請求是通過HTTPS完成的,那么您可以使用Request :: secure()來檢查,而不是通過配置手動設置它
根據laravel source ,如果您沒有明確暗示使用http / https,資產將根據請求信息生成協議。 所以,你不應該在這里改變任何東西。 一旦您開始通過安全連接請求,它將切換到https。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.