2017-05-05 92 views
0

,所以我試圖從CloudFlare的添加HTTPS/SSL到我laravel應用程序,它會自動重定向所有請求,從HTTP到HTTPS,但我得到了新的問題,我所有的資源文件(CSS,JS和圖片)是HTTP,因此它拒絕加載和我收到此錯誤控制檯

混合內容:在「https://sm-trust.com/」的頁面通過HTTPS加載,但請求一個不安全的樣式表'http://sm-trust.com/css/bootstrap.min.css'。此請求已被阻止;內容必須通過HTTPS提供。

我使用包括我所有的CSS刀片,JS和圖片

{{ HTML::style('css/bootstrap.min.css', array(), true) }} 

如何解決呢?所以它會自動以https

裝入資產,也在這裏是我的完整的.htaccess

RewriteEngine On 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

回答

0

安全網站不允許混合使用協議。一切都必須從安全的服務器中嵌入。瀏覽器將忽略/阻止HTTPS頁面上的HTTP資源(具有不同程度的嚴格性)。

這種阻塞的原因是,像樣式表和腳本這樣的不安全HTTP資源仍然可以被攻擊者修改,並用來欺騙/劫持網站的安全部分。

如果樣式表由服務器提供,那麼省略URL的協議+主機部分,即不使用http://example.com/style.css將/style.css用作URL,因此可以在HTTP和HTTPS上使用。您也可以使用協議相關的URL。

如果您必須有一個完整的URL,那麼只能使用https:// ... URL。

0

基於Laravel的documentation,你可以做這樣的事情

echo link_to_asset('foo/bar.zip', $title, $attributes = array(), $secure = null); 

第四個參數允許你加載安全資產。

相關問題