laravel 4.2 https 无法加载 Assets 文件

标签 laravel .htaccess ssl laravel-blade

所以我尝试通过将此行添加到 .htaccess 中,将来自 cloudflare 的 https/SSL 添加到我的 laravel 应用程序中

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

它会自动将所有请求从 http 重定向到 https,但我遇到了新问题,我所有的 Assets 文件(css、js 和图像)都是 http,因此它拒绝加载,我在控制台中收到此错误

Mixed Content: The page at 'https://sm-trust.com/' was loaded over HTTPS, but requested an insecure stylesheet 'http://sm-trust.com/css/bootstrap.min.css'. This request has been blocked; the content must be served over HTTPS.

我正在使用 blade 来包含我所有的 css、js 和图像

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

如何解决?所以它会自动使用 https 加载 Assets

还有我完整的.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>

最佳答案

安全网站不允许混合协议(protocol)。一切都必须从安全服务器嵌入。浏览器将忽略/阻止 HTTPS 页面上的 HTTP 资源(具有不同程度的严格性)。

此阻止的原因是样式表和脚本等不安全的 HTTP 资源仍可能被攻击者修改并用于欺骗/劫持网站的安全部分。

如果样式表由您的服务器提供,则省略 URL 的协议(protocol)+主机部分,即代替 http://example.com/style.css使用/style.css 作为 URL,因此它适用于 HTTP 和 HTTPS。您还可以使用协议(protocol)相关 URL。

如果您必须有一个完整的 URL,则仅使用 https://... URL。

关于laravel 4.2 https 无法加载 Assets 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43800440/

相关文章:

laravel - 自定义 token 响应 Laravel Passport

php - 在 wamp 中使用 rewriteRule 时未定义索引

.htaccess - ErrorDocument 与 RewriteRule

.htaccess - StackOverflow 中的 301 重定向。它是如何运作的?

ssl - Watson 和 https 的问题

java - 如何在java中禁用SSLContext中的通用名称检查?

mysql - 登录laravel时如何检查表company的字段comp_status?

php - Laravel 按列的一种类型分组,并且仅按该类型排序

SSL 证书不受信任

javascript - Tizen 上的 VueJS 和 Laravel 5.4 不起作用