Laravel 5和Cloudflare SSL

前端之家收集整理的这篇文章主要介绍了Laravel 5和Cloudflare SSL 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

好吧,今天我第一次决定在Web项目上使用ssl.首先,我在cloudflare.com中配置了我的域.然后,我在cloudflare中打开页面规则,以自动将网站重定向到https.

http://*example.com/*

为了确保它能正常工作,我向public_html添加了简单的index.PHP并成功了.我的意思是,当我进入该网站时,https处于活动状态,并且该网站向我显示了一个著名的词:“ Hello World”

之后,我将Laravel项目上传到Web服务器并配置了虚拟主机.我使用Nginx服务器.

server {
        listen 80;

        root /home/user/www/example.com/public_html/public;
        index index.PHP index.html index.htm;

        server_name example.com

        location / {
                try_files $uri $uri/ =404;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;

        location = /50x.html {
                root /usr/share/Nginx/html;
        }

        location ~ \.PHP${
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.PHP)(/.+)$;
                fastcgi_pass unix:/var/run/PHP5-fpm.sock;
                fastcgi_index index.PHP;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_nam$
                include fastcgi_params;
        }
}

好吧,当我使用https进入网站时,Laravel路由不起作用.另外,服务器未读取我的css和js文件.

然后我关闭了cloudflare的页面规则,该站点与http配合良好.

我试图用监听443配置服务器,在命令中使用ssl,但是没有任何结果.

另外,我找到了与laravel 5有关cloudflare的链接.但是不确定,这就是我想要的.

Laravel Cloudflare

任何帮助,将不胜感激.

最佳答案

强制所有路由到https我决定制作一个中间件并在所有路由中使用它.

namespace App\Http\Middleware;

use Closure;

class HttpsProtocol
{
    public function handle($request,Closure $next)
    {
        $request->setTrustedProxies( [ $request->getClientIp() ] );
        if (!$request->secure()) {
            return redirect()->secure($request->getRequestUri());
        }

        return $next($request);
    }
}

猜你在找的Nginx相关文章