我有一个应用程序的开头,我从另一个选择Klein作为路由框架的开发人员那里学到了。我对Slim更熟悉,但仍然为我的生活无法弄清楚为什么以下不起作用:
$klein->respond('GET', '/?', function($request, $response) {
echo 'this works!'
});
$klein->respond('GET', '/[i:id]', function($request, $response) {
echo 'This returns 404 not found';
});
$klein->dispatch();
的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
在我的httpd.conf中,我有“AllowOverride All”
我确信这是非常直接的,但对于我的生活,我无法弄清楚为什么第二条路线不起作用。
答案 0 :(得分:1)
考虑两个路由模式。
'/?'
路由模式匹配scheme:host
和schema:hostname/
。 /
是可选的。
/[i:id]
路由模式匹配scheme:host/id
,其中id是整数。
除非为更新此路由模式以匹配这种情况,否则用/
(例如scheme:host/2/
)终止后面的路由模式的请求uri将不匹配。
为了匹配这种情况,请将/[i:id]/?
用作路由模式。