Laravel - 正则表达式路由匹配所有内容,但不完全匹配一个或多个单词

DeL*_*eLe 8 regex laravel laravel-routing laravel-5

我做了一条路线

Route::get('/{url1}', function ($url1) {
    return ' url1: '.$url1;
})
->where('url1', '^(?!(string1|string2)$)');
Run Code Online (Sandbox Code Playgroud)

和访问网址如:
-domain/abc 未找到 => 不正确??
-domain/string1未找到 => 正确

还有更多,当我做

Route::get('/{url1}/{url2}', function ($url1) {
    return ' url1: '.$url1;
})
->where('url1', '^(?!(string1|string2)$)');
Run Code Online (Sandbox Code Playgroud)

并访问 url,如:
-domain/abc/abc 未找到 => 不正确???
-domain/string1/abc未找到 => 正确

怎么解决谢谢

Mit*_*hod 4

请尝试第一种情况:

Route::get('/{url1}', function ($url1) {
    return ' url1: '.$url1;
})->where('url1', '^!(string1|string2)$');

Run Code Online (Sandbox Code Playgroud)

对于第二种情况:

Route::get('/{url1}/{url2}', function ($url1, $url2) {
    return ' url1: '.$url1 . ' url2: '.$url2;
})->where('url1', '^!(string1|string2)$');
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助:)