private function resetPath(Http\Request $request)
{
if (!$this->removed) {
return $request;
}
$uri = $request->getUri();
$path = $uri->getPath();
if (strlen($path) >= strlen($this->removed) && 0 === strpos($path, $this->removed)) {
$path = str_replace($this->removed, '', $path);
}
$resetPath = $this->removed . $path;
// Strip trailing slash if current path does not contain it and
// original path did not have it
if ('/' === $path && '/' !== substr($this->removed, -1)) {
$resetPath = rtrim($resetPath, '/');
}
// Normalize to remove double-slashes
$resetPath = str_replace('//', '/', $resetPath);
$new = $uri->withPath($resetPath);
$this->removed = '';
return $request->withUri($new);
}