首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在laravel 5.5中的博客文章URL重定向

在 Laravel 5.5 中,博客文章的 URL 重定向可以通过使用路由重定向来实现。具体步骤如下:

  1. 首先,在 routes/web.php 文件中定义一个路由,用于匹配旧的博客文章 URL。例如,假设旧的 URL 格式为 /blog/{id},可以使用以下代码定义路由:
代码语言:txt
复制
Route::get('/blog/{id}', function ($id) {
    // 根据 $id 获取对应的博客文章信息
    $article = App\Article::find($id);

    // 生成新的 URL
    $newUrl = '/articles/' . $article->slug;

    // 执行重定向
    return redirect($newUrl);
});
  1. 接下来,需要在 App\Article 模型中定义 slug 字段,用于存储博客文章的唯一标识符。可以使用 Laravel 提供的 str_slug 函数生成唯一的 slug。例如,在 App\Article 模型中添加以下代码:
代码语言:txt
复制
use Illuminate\Support\Str;

// ...

public function setSlugAttribute($value)
{
    $this->attributes['slug'] = Str::slug($value);
}
  1. 最后,在 App\Article 模型中定义 getRouteKeyName 方法,用于指定使用 slug 字段来查找博客文章。例如,在 App\Article 模型中添加以下代码:
代码语言:txt
复制
public function getRouteKeyName()
{
    return 'slug';
}

完成以上步骤后,当用户访问旧的博客文章 URL /blog/{id} 时,系统会自动将其重定向到新的 URL /articles/{slug}。这样可以确保用户访问旧的 URL 时能够正确地找到对应的博客文章。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库(TencentDB)、腾讯云对象存储(COS)等。你可以在腾讯云官网上找到更多关于这些产品的详细信息和介绍。

参考链接:

  • Laravel 文档:https://laravel.com/docs/5.5/routing
  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过springboot拦截器实现博客文章的自定义URL地址

实现思路 1 既然是自定义的 url 地址,那么肯定要保存到数据库。 2 拦截所有的请求,然后判断请求的地址是不是一个博文的自定义 url 地址。...3 如果是就重定向或者转发到博文统一展示页(重定向或者转发时将博文的 ID 传过去)。 4 博文统一展示页就通过博文的 id 就可以展示文章内容了。...拦截器学习 既然是通过拦截器实现,那么就需要知道该在何时拦截,如何在拦截器当中实现重定向跳转等等。...HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //获取所有文章的...URL List allUrl = mlogArticlesService.getAllUrl(); //获取请求的路径 String servletPath

1.7K30
  • 对QR码的初步研究(附:在博客里放上博客文章的QR码)

    直入正题,经过2天的玩弄,发现QR码的生成有以下三种:   google QR API   相关jquery QR插件   后端语言生成   下面我分别来介绍下这三种方法及优劣分析。...这是Google Chart API的头部,直接照抄就行   &cht=qr 这是说图表类型为qr也就是二维码   &chs=200x200 这是说生成图片尺寸为200*200,是宽*高,这并不是生成图片的真实尺寸...的QR API就可以制作类似博客签名的东东(参考文章结束部分) 优点:不占用服务器资源,速度稳定,生成图片 缺点:不能设置QR码颜色 相关jquery QR插件   插件有几个,我主要介绍“jquery.qrcode.js...”,它的调用方法非常简单,就拿官方的demo来看吧 jQuery('#qrcode').qrcode({ render : "table...,不过可以修改插件实现颜色修改) 缺点:不生成图片,table模式下可能会出错,canvas部分浏览器不支持 后端语言生成   我主要介绍下php的一个QR类,他是基于GD2库来绘制QR码的,并且生成图片

    60420

    Laravel-博客实战+踩坑laravel-blog最终的效果踩的坑

    最近在学习Laravel,参考的课程是后盾网地Laravel5.2博客项目实战 下面整个项目的开发过程: laravel-blog 基于laravel5.2的博客 day1(7月31): 后台模板引入...session.png csrf验证 在使用Laravel框架开发网站的时候,我们最好从头到底按照框架规范进行设计 ? image.png 在进行表单验证时,需要加上csrf token ?...image.png return->back()->with() return back()->with('msg','验证码错误');重定向至前一个页面,但传入的值用session('msg')...无法取到 项目路由配置时,所有路由是配置在一个总的路由分组中,对这个分组添加了web中间件。...删掉这个中间件或者去掉这个路由分组,问题得到解决 时区设置 默认时区采用的是UTC,需要手动改成东八区。PRC在config下的app.php文件里: ?

    2.5K50

    Laravel5.2之Demo1——URL生成和存储

    引言: 本文基于Laravel框架做的一个URL生成和存储demo,主要目的是学习使用Laravel框架。...这里的url表示提交表单时的路由,方法为post。在这里使用laravelcollective/html这个组件,顺便了解下怎么在laravel中安装组件。 这里书中使用了laravel4....(1)、验证输入 在提交表单时都要验证输入数据是否符合规定,免得让脏数据进入数据表里,laravel提供了Validation模块来做表单验证并且可以在视图中显示验证错误信息,具体想了解下的可以看我这篇文章...'是输入不能为空,是laravel自带的验证规则,'url'也是laravel自带的URL验证规则,就是格式得符合URL格式,'|'表示且的意思。...6、从数据库中取出URL并且重定向 最后根据生成的URL获取其hash部分,根据hash值从links数据表取出对应的URL为了重定向,这里英文原文也是在路由中写逻辑,这里也在路由里写逻辑: Route

    24.1K31

    PHP 基于 Cookie + Session 实现用户认证功能

    中添加如下代码从而可以自动加载这个 helper.php 文件: "autoload": { "files": [ "app/helper.php" ], ... } 这样,我们在控制器发送重定向响应时就无需编写一堆重复的代码了...$this->session->has('auth_user')) { redirect('/login'); } } 表示如果用户没有登录的情况下访问博客后台,会重定向到登录页面...我们在 public 目录下运行 php -S localhost:9000 启动这个博客项目,然后在浏览器中访问后台首页,由于用户尚未认证,所以会跳转到登录页面: ?...如果输入的用户名和密码不匹配,会提示错误信息: ? 登录凭证通过验证后,就可以登录成功,进入博客后台页面: ? 点击右上角的用户头像,下拉框会出现退出按钮: ?...确认退出后,页面会再次重定向到登录页面,表示用户退出成功。 关于用户认证的部分,学院君就简单介绍到这里,下篇教程,我们来完善后台专辑、文章、消息的增删改查功能,从而构建博客系统前后端功能闭环。

    2.4K20

    PHP-web框架Laravel-路由(一)

    路由是Web应用程序中最重要的组件之一。路由是将HTTP请求映射到应用程序中正确控制器的机制。在Laravel中,路由负责确定应用程序如何响应传入的HTTP请求。...Laravel路由基础知识Laravel路由定义在应用程序的routes目录中。这些路由可以定义在web.php文件中,也可以定义在api.php文件中。...重定向在Laravel中,可以使用Route::redirect方法来将一个路由重定向到另一个URI。...例如,下面的路由将将“/”路由重定向到“/home”路由:Route::redirect('/', '/home');命名路由在Laravel中,可以给路由指定一个名称,这个名称可以在应用程序中其他地方引用...现在,我们可以在应用程序中其他地方使用route函数来引用这个路由:$url = route('profile', ['id' => 1]);

    1.3K10

    Laravel Api表单验证失败被重定向到主页

    Laravel Api 开发中,需要实现表单验证,但发现了一个问题,在 Laravel 中,api开发实现表单验证,如果验证失败,会被302重定向到主页。...如图,我们在请求 /passport/_register 时,状态码变成了302,而后重新请求了 127.0.0.1,这显然不是我们所要的结果,我们需要在表单验证失败时,抛出异常,响应错误信息给前端。...首先,定位到父类源码 Illuminate\Foundation\Http\FormRequest,以寻求解决方案,在 FormRequest 类中,有一个方法 failedValidation:...return $url->previous(); } 这个方法显然是处理验证失败的,后面被重定向了,解决方法,我们可以重写 failedValidation 方法。...1.新建 ApiRequest.php php artisan make:request ApiRequest 2.在 ApiRequest 中重写 failedValidation protected

    68920

    通过 Laravel 创建一个 Vue 单页面应用(五)

    如何对成功删除用户作出相应的反馈 与更新一个用户不同的一点是,一旦我们成功删除了一个用户记录,那么数据库中就没有这个用户的记录了。在传统的网页应用中,我们会删除那条用户记录,然后重定向返回用户列表。...*'); 如果你数入一个无效的 URL 比如 /does-not-exist,你会看到像下面的一堆东西: Vue路由器触发了会将浏览器重定向到 /404 的通配符路由规则。...为了捕获在 create() 回调中失败的请求信息,以及将用户请求重定向到404路由,我们需要更新一下 UsersEdit : created() { api.find(this....如果你想了解灵活客户端提供的所有细节,我在我的文章构建灵活的Axios客户端中详细讨论了这个想法。 在不改变客户机的外部 API 的情况下,我们可以改变客户机在后台的工作方式。...接下来,我们将转向构建用户创建,以总结如何执行基本的创建、读取、更新和删除(CURD)操作。此时,您应该拥有自己完成创建新用户所需的所有工具,因此可以在本系列的下一篇文章发布之前尝试构建此功能。

    4.4K20

    Laravel 控制器:从 MVC 模式聊起

    Task 模型类,然后将用户重定向到显示所有任务的页面。...在 Laravel 中所有的控制器方法(包括构造函数)都会在服务容器中进行解析,这意味着所有方法中传入的可以被容器解析的接口/类型提示对应服务实现都会被自动注入,我们将这个过程称之为依赖注入。...5、资源控制器 有时候在编写控制器时命名方法名称可能是最困难的,好在 Laravel 为常见的 REST/CRUD 控制器(在 Laravel 中称之为「资源控制器」)提供了一套约定规则,并为此提供了相应的...HTTP请求方式 URL 控制器方法 路由命名 业务逻辑描述 GET post index() post.index 展示所有文章 GET post/create create() post.create...} destroy() post.desc 删除单个文章 绑定资源服务器 通过上面的表格已经了解了 Laravel 中对资源路由的命名约定,Laravel 还为我们提供了一个 Route::resource

    11.3K51

    30分钟用Laravel实现一个博客

    ,输入命令 composer create-project --prefer-dist laravel/laravel blog 你还需要配置一个虚拟主机以提升开发效率(直接访问url,不需要 “localhost..._message') 编辑 BlogController 里的各种方法,在执行成功某些方法时,页面重定向前,装载闪存。...第三阶段总结 我们使用命令创建了一个 “资源控制器” 我们在 /routes/web.php 定义了一条资源路由 我们使用 BlogController 中的7个方法完成了对 博客文章 的 CURD(增删改查...user_id 获取 user对象, 然后指向->name属性 } 评论验证 在博客中,我们就没有使用验证,那是因为项目定位是一个个人博客,能够操纵博客增删改的只有我们自己。...然后通过文章->评论+s;的方法直接获取了属于某篇文章的所有评论。 我们学会了创建请求Request,并且在它的内部配置验证规则,在控制器层中通过依赖注入的形式验证数据。

    7.4K00

    laravel源码解读学习(一)Application的实例化

    前言心血来潮发现laravel有php artisan serve监听端口的启动方式,突然想仔细看看laravel源码,本系列随时可能鸽,laravel版本8.83.27。...为什么是这版本呢,因为在写这篇文章时直接执行laravel的composer方式安装默认就是这版本Application的构造方法切入口就基于根目录的artisan文件常见的框架初始化入口,接下来去到/.../Container/Container::rebinding()写入)要注意的是在setBasePath()这一步中并没有实例化任何类,只是在容器中注册了'path.xxx',与其对应的值是各目录路径字符串至此...$this->registerRouter() 注册 router 单例组件 Illuminate\Routing\Router路由核心组件,功能包括注册路由、重定向、匹配请求路由(dispatch)、...\Routing\Router 的装饰器,功能包括多种格式化路由Url的方式和router部分API$this->registerRedirector() 注册 redirect 单例组件 Illuminate

    22110

    基于 Symfony 组件封装 HTTP 请求响应类

    接下来,学院君会以前面作业中编写的博客系统为例,构建一个简单的 PHP MVC 框架。...我们将演示路由器、控制器、视图模板、模型类、Session 等基本组件的实现,并反过来基于这些组件完成博客系统的 CRUD(增删改查)功能。...getPath() == 'post') { $id = intval($request->get('id')); if (empty($id)) { echo '请指定要访问的文章...最后,在兜底逻辑中,我们基于 Response 对象设置响应状态码和响应头,对于 Response 类的构造函数,第一个参数是响应实体(默认是空字符串,这里是重定向响应,故而留空),第二个参数是响应状态码...PS:实际上,使用 Symfony HTTP Foundation 组件封装请求响应类的 PHP 项目非常多,包括大名鼎鼎的 Laravel、Drupal、Joomla! 等: ?

    8.7K20

    【Laravel系列3.2】路由:指哪儿打哪儿

    路由命名与跳转 在原始的 PHP 中,如果我们需要跳转链接,一般使用的是 header() 方法,并在参数里使用 Location:url 这种方式。...然后使用 redirect()->route() 方法就可以实现路由的跳转重定向。其中直接使用 route() 方法可以生成一个指定路由的链接字符串。...这个功能大家可以自己参考文档实现,我们也将在下篇文章学习控制器的时候进行简单的演示。 除了字符串的写法外,还可以使用类名的方式。.../route/user/1 // Erwin Ortiz 上述代码中,我们需要参数名称和模型对象的参数名称相同,然后在 URL 中传递对应数据的 ID ,这样就可以直接查询到模型对象对应的数据信息。...接下来,我们以 http://laravel8/temp/ 这个链接为例,使用调试工具看一下路由是如何调用分派的。 首先当然还是请求的封装,也就是我们上篇文章中的 Request 对象的生成。

    11.8K10
    领券