在做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. Kombu源码分析(一)概述

    Celery是Python中最流行的异步消息队列框架,支持RabbitMQ.Redis.ZoopKeeper等作为Broker,而对这些消息队列的抽象,都是通过Kombu实现的.Kombu实现了对AM ...

  2. Ubuntu 14.04更新为国内阿里源解决apt-get install无法执行的问题

    step01: sudo gedit /etc/apt/sources.list #将下面全部粘贴到sources.list中deb http://mirrors.aliyun.com/ubuntu/ ...

  3. 了解python-FAQ

    python FAQ 参考: https://docs.python.org/zh-cn/3.7/faq/design.html#why-are-python-strings-immutable wh ...

  4. mysql显示一张表的索引

    show index from tm_show.fulfillment_order;show index from tm_show.express_verify;show index from tra ...

  5. redis windows下载地址

    https://github.com/MicrosoftArchive/redis/tags

  6. 品优购 Angular学习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. NSKeyedArchiver : NSCoder

    NSKeyedArchiver : NSCoder @interface NSData : NSObject <NSCopying, NSMutableCopying, NSSecureCodi ...

  8. 关于读取Com口数据时,Com口的名字的两种读法。

    1,直接调用SerialPort类中的GetPortNames()方法. string[] portList = System.IO.Ports.SerialPort.GetPortNames(); ...

  9. 退役IV次后做题记录

    退役IV次后做题记录 我啥都不会了.... AGC023 D 如果所有的楼房都在\(S\)同一边可以直接得出答案. 否则考虑最左最右两边的票数,如果左边>=右边,那么最右边会投给左边,因为就算车 ...

  10. 机器学习之决策树原理和sklearn实践

    1. 场景描述 时间:早上八点,地点:婚介所 '闺女,我有给你找了个合适的对象,今天要不要见一面?' '多大?' '26岁' '长的帅吗?' '还可以,不算太帅' '工资高吗?' '略高于平均水平' ...