ThinkPHP6.0多应用模式路由生成的URL如何隐藏应用名

点击:5077时间:2019-12-06 14:38:48
ThinkPHP6.0多应用模式路由生成的URL如何隐藏应用名,先修改配置文件域名绑定,再修改路由文件,最后绑定好域名就可以了。

您在使用ThinkPHP6.0的时候或许会遇到,大多应用模式的情况下,路由生成的URL会带应用名。举个是简单的例子,加入我把网站的前台、后台分为两个应用,开启路由并由url含数生成的URL地址会自动加上应用名。如:

http://www.test.com/index/news/1.html

而我实际想要的效果是如下的:

http://www.test.com/news/1.html

在ThinkPHP5.1时代是可以直接就隐藏应用名,当然,当时不叫应用,应该叫模块。那么,在ThinkPHP6.0下是否也能实现类似ThinkPHP5.1时的效果的呢?答案是肯定的,但也比较曲折,而且有时并不一定是我们想要的。废话不多说,具体操作如下:

1、在config/app.php中配置域名绑定,如:

'domain_bind'      => [
    'www'=>'index',
    'admin'=>'admin',
],

2、在应用index下建文件route/route.php,路径如下(原谅我还在用xp系统):

文件路径

route.php文件内容如下:

<?php
use think\facade\Route;

Route::rule('news/:id','index/Index/news','GET');

这样后访问http://www.test.com/news/1.html就会路由到应用index的Index类的news方法上了。

在index应用中用生成url如下:

url('index/Index/news',['id'=>1]);

生成的url为/news/1.html

但这样感觉很不爽啊,要设置多域名绑定,感觉挺复杂的了。


关键词: ThinkPHP6.0 网站开发 ThinkPHP