Use the request URI instead of the request.Path.

The request.Path unescapes URL encoded values. Therefore there is no way to
represent /. For example a product with id XYZ/LMN would be encoded as XYZ%2FLMN but the request.Path would still parse it as /XYZ/LMN thus returning a 404.