Laravel paginate分页伪静态 自定义分页静态URL链接 斜线或.html结尾

Laravel 分页伪静态 静态URL 自定义分页URL .html实现

自带paginate分页 URL链接伪静态 以斜线结尾或者.html结尾 SEO实现方法

 

一、简述

为了SEO优化,我收到的就是这么个分页参数显示的需求。

实现的是这样的URL,当然列表页更多的可能是不是HTML结尾的,

只要跟我的方法一样不拼接.html就好了,都是同理所以分享一下。

Laravel paginate分页伪静态 自定义分页静态URL链接 斜线或.html结尾_第1张图片

 

二、实现过程

 

1.修改vendor\laravel\framework\src\Illuminate\Pagination\AbstractPaginator.php文件

①声明变量

//声明分页URL的变量
protected $pageUrl = '';

//声明分页URL的尾缀
protected $ext = '';

②修改url函数,在url方法中增加if判断。

if($this->pageUrl !=''){
    return $this->pageUrl.$page.$this->ext;
}

Laravel paginate分页伪静态 自定义分页静态URL链接 斜线或.html结尾_第2张图片

注:如果不需要加.html需要斜线结尾ext就写'/'。

 

③增加一个url的预加载方法

//url预加载
public function withUrl($str,$ext)
{
	$this->urlStr = $str;
	$this->ext = $ext;
	return $this;
}

④修改路由

注:路由主要是传输page值。

 

⑤调用预加载方法

DB::table('')->
where('')->
paginate(12,['*'],'page',$page)->
withUrl('页码前面的URL','页码后的尾缀');

Laravel paginate分页伪静态 自定义分页静态URL链接 斜线或.html结尾_第3张图片

paginate(每页数量,默认值,默认值,当前页)

 

⑥页面调用

{{$contents->links()}}

就是laravel自带的调用分页方法哪种都可以!

 

三、总结

本人刚刚开始写laravel,觉得laravel的中间件、作用域是挺好的设计,不对之处多多指教。

本人编辑,转载请注明出处,原地址:https://blog.csdn.net/weixin_41818665/article/details/94404851

你可能感兴趣的:(laravel,php)