# Niushop开源商城路由配置
---
### 1. 普通模式
关闭路由,完全使用默认的`PATH_INFO`方式URL:
```php
'url_route_on'=>false,
```
路由关闭后,不会解析任何路由规则,采用默认的`PATH_INFO`模式访问URL:
```php
http://serverName/index.php/module/controller/action/param/value/...
```
> 但仍然可以通过操作方法的参数绑定、空控制器和空操作等特性实现URL地址的简化。
可以设置`url_param_type`配置参数来改变pathinfo模式下面的参数获取方式,默认是按名称成对解析,支持按照顺序解析变量,只需要更改为:
```php
// 按照顺序解析变量
'url_param_type'=>1,
```
### 2. 混合模式
开启路由,并使用路由定义+默认`PATH_INFO`方式的混合:
```php
'url_route_on'=>true,
'url_route_must'=>false,
```
该方式下面,只需要对需要定义路由规则的访问地址定义路由规则,其它的仍然按照第一种普通模式的`PATH_INFO`模式访问URL。
### 3. 强制模式
开启路由,并设置必须定义路由才能访问:
```php
'url_route_on'=>true,
'url_route_must'=>true,
```
这种方式下面必须严格给每一个访问地址定义路由规则(包括首页),否则将抛出异常。
首页的路由规则采用`/`定义即可,例如下面把网站首页路由输出`Hello,world!`
```php
Route::get('/',function(){return 'Hello,world!';});
```
### 4. niushop路由
niushop路由模式分为兼容模式与pathinfo模式,兼容模式可以在不懂得配置伪静态模式下使用,pathinfo模式需要强制配置伪静态路由。配置选项在 设置>基础设置>运营设置
```
Route::get('/',function(){return 'Hello,world!';});
```
niushop开启pathinfo模式下可以使用伪静态将前端页面展示成html形式,同时需要修改伪静态配置,路径在application/config.php:
```php
define("REWRITE_MODEL", true); // 设置伪静态,默认false
```
```php
```
```php
/**
* niushop特定路由规则 common.php
*/
function urlRoute()
{
/**
* *********************************************************************************特定路由规则***********************************************
*/
if (REWRITE_MODEL) {
$website = new WebSite();
$url_route_list = $website->getUrlRoute();
if (!empty($url_route_list['data'])) {
foreach ($url_route_list['data'] as $k => $v) {
// 针对特定路由特殊处理
if ($v['route'] == 'web/goods/detail') {
Route::get($v['rule'] . '-<goods_id>', $v['route'], []);
} elseif ($v['route'] == 'web/article/detail') {
Route::get($v['rule'] . '-<article_id>', $v['route'], []);
} elseif ($v['route'] == 'web/goods/sku') {
Route::get($v['rule'] . '-<sku_id>', $v['route'], []);
} else {
Route::get($v['rule'], $v['route'], []);
}
}
}
}
}
```
具体增加路由规则可以查看thinkphp5