nikic/FastRoute を使用する Slim 3 を使用していますが、次のようなエンドポイントで問題が発生しています。
$app->get('/count/{url}', function ($request, $response) use ($curl) {
$controller = new Proximate\Controller\CountUrl($request, $response);
$controller->setCurl($curl);
return $controller->execute();
});
私の計画は、urlencode された URL をコントローラーに渡し、{url}
それをコントローラーに挿入することです。たとえば、 の場合http://www.example.com
、リクエストは次のようになります。
curl \
--verbose \
http://localhost:8080/count/http%3A%2F%2Fwww.example.com%2F
ただし、これは 404 で失敗するため、明らかに一致していません。これも失敗します:
curl \
--verbose \
http://localhost:8080/count/http%3A%2F%2Fwww.
ただし、奇妙なことに、これは一致します (つまり、末尾のドットなし):
curl \
--verbose \
http://localhost:8080/count/http%3A%2F%2Fwww
私は当初、それを混乱させていたのは urlencoded スラッシュだと思っていました ( %2F
) が、これらの文字なしで試してみたところ、実際には文字列のどこにでもあるドットであることがわかりました。これが一致しないのはなぜですか?これを機能させるには、正規表現の一致が必要ですか?
このアプリには PHP 組み込み Web サーバーを使用しています。