thinkphp5---路由问题

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

缘由:在thinkphp开发的项目中,使用伪静态,路由格式:xxx.com/xxx/2.html ,可是后面的 .html 是默认的,经过访问 xxx.com/xxx/2 也可以访问。html

如今要求只可以经过:xxx.com/xxx/2.html 访问,也就是结尾必须有 .html nginx

解决方式:thinkphp

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

二、经过thinkphp的路由来解决服务器

咱们能够经过一个方法来进行验证当前路由是否带有 .html 。app

具体操做:网站

第一步:配置路由url

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

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

<?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;
      }
    }
}
相关文章
相关标签/搜索