【问题标题】:laravel 4.2 https can't load asset filelaravel 4.2 https 无法加载资产文件
【发布时间】:2023-03-06 13:46:01
【问题描述】:

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

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

它会自动将所有请求从 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>

【问题讨论】:

    标签: laravel .htaccess ssl blade


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      基于 Laravel 的documentation,你可以做这样的事情

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

      第四个参数允许您加载安全资产。

      【讨论】:

        猜你喜欢
        • 2017-01-08
        • 1970-01-01
        • 2020-07-03
        • 2021-10-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-19
        • 2020-06-19
        • 1970-01-01
        相关资源
        最近更新 更多