Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel 4.2 https can';无法加载资产文件_Laravel_.htaccess_Ssl_Blade - Fatal编程技术网

laravel 4.2 https can';无法加载资产文件

laravel 4.2 https can';无法加载资产文件,laravel,.htaccess,ssl,blade,Laravel,.htaccess,Ssl,Blade,因此,我试图通过将这一行添加到.htaccess中,将cloudflare中的https/SSL添加到我的laravel应用程序中 RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https Rewrit

因此,我试图通过将这一行添加到.htaccess中,将cloudflare中的https/SSL添加到我的laravel应用程序中

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
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>
它会自动将所有请求从http重定向到https,但我遇到了一个新问题,我的所有资产文件(css、js和图像)都是http,所以它拒绝加载,我在控制台中遇到了这个错误

混合内容:通过HTTPS加载了“”处的页面,但请求了不安全的样式表“”。此请求已被阻止;内容必须通过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]
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>
重新编写引擎打开
重写cond%{HTTP:X-Forwarded-Proto}!https
重写规则^(.*)$https://%{HTTP_HOST}/$1[R=301,L]
选项-多视图
重新启动发动机
#如果不是文件夹,则重定向尾部斜杠。。。
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
#句柄授权头
RewriteCond%{HTTP:Authorization}。
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
基于Laravel的,您可以这样做

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

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

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

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

如果样式表是从您的服务器提供的,那么省略URL的协议+主机部分,也就是说,不使用/style.css作为URL,因此它可以在HTTP和HTTPS上工作。您还可以使用协议相关URL

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