laravel框架的重定向问题以及csrf验证问题
2019-05-14 本文已影响0人
只想单纯的码代码
1. 在laravel框架安装成功后,你可能会遇见在路由访问PHP时,除了默认路由 “\” ,可以访问到主界面,即显示 laravel5的界面。其余路由全部404,
项目框架配置文件导致这个问题出现的原因是laravel框架重定向问题,只能定向到public下的index文件。所以其余路由访问都为404。
解决这个的问题方发也很简单,找到你本项目的laravel框架配置文件(laravel.conf)文件
该配置文件是在你本地服务器下自动生成的配置文件。在nfinx/conf文件目录下,该目录下可能会存在多个laravel配置文件,如rewrite、vhosts、vhosts/rewrite文件夹下,可以分别输入以下代码进行测试。location / { try_files $uri $uri/ /index.php?$query_string; if (!-e $request_filename){ rewrite ^/(.*) /index.php last; } }
2. 在laravel框架中,如果不做任何配置就进行post访问,会报错419,或者500
而出现这个问题的原因是laravel框架有csrf验证,
解决方发:
打开文件:app\Http\Middleware\VerifyCsrfToken.php
- 关闭全部csrf验证。
在VerifyCsrfToken.php文件中加入以下代码,即关闭全部验证
public function handle($request, Closure $next){
if($request->method() == 'POST'){
return $next($request);
}
if ($request->method() == 'GET' || $this->tokensMatch($request)) {
return $next($request);
}
throw new TokenMismatchException;
}
- 关闭部分csrf验证
在VerifyCsrfToken.php文件中进行修改$except属性,即关闭post请求的http://域名/v1/*,的csrf验证
protected $except = [
'v1/*'
];