TP5.1 miss路由不生效


问题描述:

路由设置 (配置文件已开启强制路由和路由完全匹配)

<?php
// route/route.php
Route::get('/', function () {
    return 'hello,ThinkPHP5!';
});

Route::miss(function(){
    return '非法请求';
});

直接访问 域名 正常

 

 

 访问其他 未定义的路由地址 域名/a 提示错误消息,而不是跳到miss路由,miss路由未生效!

 

 

 问题分析与解决

 

 

 

URL访问中还有一个 入口文件 的概念,默认为 index.php ,路由匹配需要结合入口文件一起才会生效。

修改访问地址 域名/入口文件/ ,路由访问正常

 

 

 

 

 修改访问地址 域名/入口文件/a , miss路由生效

 

那有没有方法可以使 域名/a 直接生效而不用写入口文件呢?答案是有的,那就是隐藏入口文件

以apache服务器为例,将 TP框架public/.htacces文件作以下修改

RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]

重新以 域名/a 的方式去访问,可以正常匹配到miss路由

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM