mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
改进路由域名绑定后的url生成
This commit is contained in:
@@ -1203,7 +1203,7 @@ class Route
|
|||||||
// 封装路由
|
// 封装路由
|
||||||
$route = [$module, $controller, $action];
|
$route = [$module, $controller, $action];
|
||||||
if (isset(self::$rules['name'][implode($depr, $route)])) {
|
if (isset(self::$rules['name'][implode($depr, $route)])) {
|
||||||
throw new HttpException(404, 'invalid request:' . $url);
|
throw new HttpException(404, 'invalid request:' . str_replace('|', $depr, $url));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ['type' => 'module', 'module' => $route];
|
return ['type' => 'module', 'module' => $route];
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ class Url
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 直接解析URL地址
|
// 直接解析URL地址
|
||||||
protected static function parseUrl($url, $domain)
|
protected static function parseUrl($url, &$domain)
|
||||||
{
|
{
|
||||||
$request = Request::instance();
|
$request = Request::instance();
|
||||||
if (0 === strpos($url, '/')) {
|
if (0 === strpos($url, '/')) {
|
||||||
@@ -172,15 +172,24 @@ class Url
|
|||||||
} else {
|
} else {
|
||||||
// 解析到 模块/控制器/操作
|
// 解析到 模块/控制器/操作
|
||||||
$module = $request->module();
|
$module = $request->module();
|
||||||
|
if (true === $domain) {
|
||||||
$domains = Route::rules('domain');
|
$domains = Route::rules('domain');
|
||||||
|
foreach ($domains as $key => $item) {
|
||||||
|
if (isset($item['[bind]']) && 0 === strpos($url, $item['[bind]'][0])) {
|
||||||
|
$url = substr($url, strlen($item['[bind]'][0]) + 1);
|
||||||
|
$domain = $key;
|
||||||
|
$module = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif ($domain) {
|
||||||
if (isset($domains[$domain]['[bind]'][0])) {
|
if (isset($domains[$domain]['[bind]'][0])) {
|
||||||
$bindModule = $domains[$domain]['[bind]'][0];
|
$bindModule = $domains[$domain]['[bind]'][0];
|
||||||
if ($bindModule && !in_array($bindModule[0], ['\\', '@'])) {
|
if ($bindModule && !in_array($bindModule[0], ['\\', '@'])) {
|
||||||
$module = '';
|
$module = '';
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$module = $module ? $module . '/' : '';
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
$module = $module ? $module . '/' : '';
|
||||||
|
|
||||||
$controller = Loader::parseName($request->controller());
|
$controller = Loader::parseName($request->controller());
|
||||||
if ('' == $url) {
|
if ('' == $url) {
|
||||||
|
|||||||
Reference in New Issue
Block a user