# 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