之前 陈华编程学院 业务比较单一,在 url 上直接体现了网站内容,但是网站改版后,增加了内容模块,所以 url 产生了变化,需要做一个301的永久跳转。

大概解释一下为什么要做301跳转,做过SEO的朋友应该都知道,原来的 url 已经被百度等搜索引擎收录了,url发生了变化之后,需要做301跳转,来让搜索引擎抓取新的重定向后的 url。

要做跳转,首先想到的就是 Laravel5 框架中的 redirect() 方法,但是进过测试,redirect() 方法默认的是302跳转,所以要自定义跳转方式。

具体代码如下:

Route::get('lesson/{id}', function ($id) {
    return redirect()->route('frontend.edu.lesson', $id, 301);
});

以上代码就能实现我们想要的301跳转,使用 redirect() 结合 route() 方法实现,需要注意的是,要把301作为 route() 的第三个参数。

如果是跳转到普通的路径,就更简单了:

Route::get('lesson/{id}', function ($id) {
    return redirect('/edu/lesson/'.$id, 301);
});

这种方法中,301是 redirect() 方法的第二个参数。

做完调整之后,可以使用 curl 命令查看一下路径状态,检查一下是否成功了:

curl -I http://dev.ichenhua.cn/lesson/1

返回结果:

HTTP/1.1 301 Moved Permanently
Server: nginx
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.2.14
Date: Sat, 13 Apr 2019 06:55:14 GMT
Location: http://www.ichenhua.cn/edu/lesson/1

我们看到,返回头信息中,状态码为301,设置成功。

本文为 陈华 原创,欢迎转载,但请注明出处:http://www.ichenhua.cn/blog/post/24