定义路由
## 定义路由
我们需要在ROOT下config 下的 route.php 文件中设置路由信息.
```php
'路由设定' => ['控制器/方法', '请求方式']
```
```php
//路由配置
return [
'rewrite'=>[
'/$' => ['home/index/go', '*'],
'/abc/:id' => ['home/index/go', '*'],
]
];
```
上方规则还是很简单的: 访问 / (无后缀) 则会进入 home 应用的 index 控制器 的 go 函数。
## 路由设置
```php
'/abc/:id' => ['home/index/go', '*'],
在控制器中或者$_GET 中 均可获取到 ID 的数据。
//网站根目录访问home/index/index;所有请求
'/$' => ['home/index/index', '*'],
//路由/blog访问home/blog/index;所有请求
'/blog' => ['home/blog/index', '*'],
//路由/view/1访问home/blog/view/id/1; get请求
'/view/:id' => ['home/blog/view', 'get'],
//路由/update/1访问home/blog/save/id/1; post请求
'/update/:id' => ['home/blog/save', 'post'],
//完全匹配;/act/xxx/id/1不会访问index/act
'/act/:ac$' => ['home/index/act', '*'],
```
> 如匹配最终地址和您预想不相同,则请调整位置或者修改是否需要完全匹配
## 多入口路由
> 暂不推荐使用多入口,因为程序本身就支持多应用
我们在根目录新建了 admin.php 文件。
```php
\core\init::start('admin');
```
并且在启动程序前,传入了应用名称。那么程序在需要匹配应用是,就会使用 admin 应用来进行匹配了哦。
如果路由中有设置login
```php
'/login$'=>['admin/index/go','*']
```
---
那么地址访问
```
http://framework.com/login
http://framework.com/admin.php/login
```
均会进入 admin/index/go 函数中!
当然,如果不想使用.php 来作为入口,你也可以使用伪静态配置
```nginx
Nginx:伪静态中增加 ,位于 index.php 上方即可
rewrite /admin/(.*)$ /admin.php/$1 last;
```
最终伪静态内容为:
```nginx
location / {
if (!-e $request_filename){
rewrite /admin/(.*)$ /admin.php/$1 last;
rewrite ^(.*)$ /index.php/$1 last;
break;
}
}
```
### Apache:
```apache
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/?(.*)$ admin.php?/$1 [QSA,PT,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>
```