[分享] 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 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 2
Summer

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

9年前 评论

你好,使用了你的代码在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;
        }
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!