在做thinkphp的开发项目中,遇到一个需求:要求让网站的链接,必须以 .html结尾。

原因:在thinkphp开发的项目中,使用伪静态,路由格式:xxx.com/xxx/2.html ,但是后面的 .html 是默认的,通过访问 xxx.com/xxx/2 也能够访问。

现在要求只能够通过:xxx.com/xxx/2.html 访问,也就是结尾必须有 .html

解决方式:

1、服务器 apache 或是是 nginx 進行配置重定向。

2、通过thinkphp的路由来解决

我们可以通过一个方法来进行验证当前路由是否带有 .html 。

具体操作:

第一步:配置路由

':name/:id' => ['index/index/details',['before_behavior'=>'\app\index\behavior\UserCheck']],

第二步:自定义方法进行验证

<?php
namespace app\index\behavior; class UserCheck{
public function run(){
$url = request()->url();
if(!preg_match("/[\w\d]*.html$/",$url)){
echo "不是以.html结尾的URL";
// header("HTTP/1.1 404 Not Found");exit;
}
}
}

thinkphp5---路由问题的更多相关文章

  1. thinkphp5路由心得

    路由的作用:1. 简化URL地址,方便大家记忆2. 有利于搜索引擎的优化,比如可以被百度的爬虫抓取到 优化URl1. 前后端分离修改入口文件,在public下新建admin.php文件,将下面的代码添 ...

  2. js和thinkphp5路由拼接一个实例

    $.ajax({ type:"get", dataType:"json", url:"/home/index/ajax_page_data/cate_ ...

  3. ThinkPHP5路由图解

  4. lnmp1.4 nginx配置thinkphp5

    vhost/xxx.conf配置图,重点是红色框框 研究了两三天 ,至此thinkphp5 路由,隐藏index.php全部解决 感谢网友的分享:http://blog.csdn.net/gaoxiu ...

  5. tp5--路由的使用方法(深入)

    懒得写注释,直接上代码 配置文件Route: <?php use think\Route; //tp5路由测试 //动态注册 //Route::rule('路由表达式','路由地址','请求类型 ...

  6. ThinkPHP5.0框架开发--第4章 TP5.0路由

    ThinkPHP5.0框架开发--第4章 TP5.0路由 第4章 TP5.0 路由 ================================================== 上次复习 1. ...

  7. ThinkPHP5——route(路由)的详解

    路由在框架中的作用打个比方的话,路由好比是WEB应用的总调度室,对于访问的URL地址,路由可以拒绝或者接受某个URL请求,并进行分发调度,而且还有一个副作用是因为路由规则可以随意定义,因此可以让你的U ...

  8. thinkPHP5.0.22初体验---路由,url访问

    “豪情卷起万重浪,吼吼哈哈-”一学thinkPHP才知道这是个国内研究的php web开发框架,瞬间自豪感如电流一般传遍全身 这就不多不说说 一.控制器 所谓MVC编程,无外乎函数(sometimes ...

  9. thinkPHP5.0 URL路由优化

    在tp中访问页面的时候URL地址是 域名/模块/控制器/方法,在点击首页的时候URL是 域名/index/index/index 而不是只显示域名,这样不利于SEO,而且强迫症的我看着很不爽,这个时候 ...

  10. Thinkphp5笔记九:路由设置,隐藏indx.php

    网站根目录下.htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on ...

随机推荐

  1. swipe滑动操作

    1.swipe() 滑动用法 swipe(self, start_x, start_y, end_x, end_y, duration=None) :Args: - start_x - 开始滑动的x坐 ...

  2. Prometheus学习笔记(5)Grafana可视化展示

    目录 一.Grafana安装和启动 二.配置数据源 三.配置dashboard 四.配置grafana告警 一.Grafana安装和启动 Grafana支持查询Prometheus.从Grafana ...

  3. 解决网页刷新时,隐藏div元素闪现问题

    最近项目遇到一个问题,需要对一个div中的元素设置根据不同的情况进行显示和隐藏. 因为默认该div是显示的,所以在刷新页面的时候,会先加载这个div进行显示,加载完成后又执行到 hide() 方法,使 ...

  4. linux设备驱动程序-i2c(2)-adapter和设备树的解析

    linux设备驱动程序-i2c(2)-adapter和设备树的解析 (注: 基于beagle bone green开发板,linux4.14内核版本) 在本系列linux内核i2c框架的前两篇,分别讲 ...

  5. 手抄吧1:windows web server

    字母写的他妈的 太恶心了  以后努力改  天天敲代码  好恶心的字体

  6. 20180414模拟赛T1——BEAD

    BEAD 源程序名 BEAD.???(PAS,C,CPP) 可执行文件名 BEAD.EXE 输入文件名 BEAD.IN 输出文件名 BEAD.OUT 时间限制 1S 内存限制 128MB 有n颗形状和 ...

  7. P1657选书-(dfs)

    https://www.luogu.org/problemnew/show/P1657 解题:对于某个人喜欢的两本书,选或者是不选! 坑:数据有一组是0的,按dfs会出错,0本书选个屁,有啥意义?不给 ...

  8. frp开机启动

    暂时只介绍linux版本的做法,作为备忘. 添加systemd配置文件: vim /usr/lib/systemd/system/frp.service 文件内容如下: [Unit] Descript ...

  9. [iOS] 利用 NSAttributedString 进行富文本处理

    /iOS /[iOS] 利用 NSAttributedString 进行富文本处理 2016年4月4日 刘小龙 iOS 许多时候我们需要以各种灵活的形式展现文本信息,即富文本.普通的 text 属性显 ...

  10. node.js封装数据库增删改查

    数据库增删改查的封装 小编不容易 const sql = { insert: function (Collection, insertData) { return new Promise((resol ...