[分享] Laravel 的 Nginx 重写规则

文档那个上面比较简略,只有:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

您可以加上这些,让你的链接更加优雅

# 去除末尾的斜杠,SEO更加友好
if (!-d $request_filename)
{
    rewrite ^/(.+)/$ /$1 permanent;
}

# 去除index action
if ($request_uri ~* index/?$)
{
    rewrite ^/(.*)/index/?$ /$1 permanent;
}

# 根据laravel规则进行url重写
if (!-e $request_filename)
{
    rewrite ^/(.*)$ /index.php?/$1 last;
    break;
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   html;
}
本帖已被设为精华帖!
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2
Summer

很不错的代码小片段. :+1:

5年前 评论

你好,使用了你的代码在nginx中,发现基本上所有的接口是可以被访问的,但是对于有一些请求在nginx日志中存在301错误,但是只使用下面部分代码,接口可以完全被使用

        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }

        # 根据laravel规则进行url重写
        if (!-e $request_filename)
        {
            rewrite ^/(.*)$ /index.php?/$1 last;
            break;
        }
                error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
5个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!