您在使用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
但这样感觉很不爽啊,要设置多域名绑定,感觉挺复杂的了。