[英]Error with HTTPS for routes in Laravel 4.2 - assets load fine over HTTPS
[英]Laravel not using https for assets and dynamic routes
我已經更改了我的APP_URL = https://example.com ,我已將其添加到我的AppServiceProvider的啟動方法中:
/** Enable HTTPS */
if(env('REDIRECT_HTTPS')) {
$url->forceSchema('https');
}
我運行php artisan cache:clear
, php artisan view:clear
和php artisan config:clear
。 我仍然無法獲得使用https的資產和動態路由。 剛收到錯誤:
混合內容:“ https://example.com/ ”頁面是通過HTTPS加載的,但請求了一個不安全的樣式表“ http://example.com/css/app.css ”。 此請求已被阻止; 內容必須通過HTTPS提供。
我知道我可以使用secure_asset
而不是asset
,這應該可行,但我需要這是動態的,因為我仍然需要在另一個域上提供網站的http版本。
asset()
幫助程序依賴於幾種可能性來確定是否建立HTTP或HTTPS URL:
$_SERVER['HTTPS']
正在on
。 這是Apache的做事方式。 對於nginx,您可以在配置中自己設置該服務器參數。 $_SERVER['HTTP_X_FORWARDED_PROTO']
是https
。 如果你是負載平衡器的后面,它可能會發送X-Forwarded-Proto
標頭,但Laravel默認不信任它,因為在某些情況下它可以由惡意用戶設置。 您可以使用TrustedProxy包告訴Laravel信任來自負載均衡器的此標頭。 (編輯:現在內置於Laravel )
另請參閱: Symfony2:getScheme不返回'https' (Laravel使用Symfony的getScheme()
函數)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.