Middleware to remove the prefix from the uri path of the request.

v2.1.0 2021-04-08 19:21 UTC

This package is auto-updated.

Last update: 2024-05-29 02:53:49 UTC


Latest Version on Packagist Software License Testing Total Downloads

Middleware to remove the prefix from the uri path of the request. This is useful to combine with routers if the root of the website is in a subdirectory. For example, if the root of your website is /web/public, a request with the uri /web/public/post/34 will be converted to /post/34.



This package is installable and autoloadable via Composer as middlewares/base-path.

composer require middlewares/base-path


Set the prefix to remove:

	new Middlewares\BasePath('/base/path')


Used to add the prefix to the Location header (for redirects). For example:

$response = Dispatcher::run([
    (new Middlewares\BasePath('/base/path'))->fixLocation(),

    function () {
        return Factory::createResponse(301)->withHeader('Location', '/post/1');

echo $response->getHeader('Location'); // Returns /base/path/post/1


This method will store the original path in an attribute.

// Save the original uri with basepath in the custom attribute "before-basepath-uri"
$basepath = (new Middlewares\BasePath())->attribute('pre-basepath-path');

Please see CHANGELOG for more information about recent changes and CONTRIBUTING for contributing details.

The MIT License (MIT). Please see LICENSE for more information.