サブパターンを操作するためにいくつかの正規表現をテストしているので、PHPを介して各URIセグメントに定義されたルールを適用できます。それらのセグメントのいくつかはオプションなので、私はこれを試しました:
preg_match('#^/(?P<controller>[\w-]+)(?:/(?P<[\w-]+)(?:/(?P<id>[\d]+)))/?$#uD', '/blog/post', $matches);
2番目と3番目のパラメーターはどちらもオプションであるため、この正規表現は一致し/blog/post/1
ますが、正しくはなりません。blog/post
手がかりはありますか?