簡體   English   中英

Laravel不使用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:clearphp artisan view:clearphp 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM