改进路由变量规则的定义 支持完整正则限定

This commit is contained in:
thinkphp
2017-06-30 11:19:43 +08:00
parent 9c0e2d5d9d
commit b06c6ea430

View File

@@ -1159,7 +1159,7 @@ class Route
private static function checkRule($rule, $route, $url, $pattern, $option, $depr)
{
// 检查完整规则定义
if (isset($pattern['__url__']) && !preg_match('/^' . $pattern['__url__'] . '/', str_replace('|', $depr, $url))) {
if (isset($pattern['__url__']) && !preg_match(0 === strpos($pattern['__url__'], '/') ? $pattern['__url__'] : '/^' . $pattern['__url__'] . '/', str_replace('|', $depr, $url))) {
return false;
}
// 检查路由的参数分隔符
@@ -1349,7 +1349,7 @@ class Route
if (false === $result) {
return false;
}
} elseif (!preg_match('/^' . $pattern[$name] . '$/', $m1[$key])) {
} elseif (!preg_match(0 === strpos($pattern[$name], '/') ? $pattern[$name] : '/^' . $pattern[$name] . '$/', $m1[$key])) {
return false;
}
}