最近阅读laravel官方文档 发现了关于nginx的推荐配置
Nginx
如果你使用 Nginx ,在你的网站配置中加入下述代码将会转发所有的请求到 index.php
前端控制器。
location / { try_files $uri $uri/ /index.php?$query_string; }
之前自学的时候 个人使用的是
rewrite ^/(.*)$ /index.php/(.*) last;
不太明白两个的差别 特别去找了一下
后来通过公司服务器的配置看出来nginx一般都是配合php-fpm来使用的,如果使用rewrite的时候会把所有的文件都重定向然后发送给php-fpm包括了静态文件,所以现在已经不推荐这样的配置了
那之后加的的$query_string是因为nginx在匹配try_files的最后一项时不会自动把args(也就是querystring)转发出去,需要手动加上
参考:http://blog.wuxu92.com/nginx-rewrite-and-try-files/