middlewares/base-path

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

Package info

github.com/middlewares/base-path

pkg:composer/middlewares/base-path

Statistics

Installs: 1 556 019

Dependents: 7

Suggesters: 0

Stars: 3

Open Issues: 0

v2.2.0 2025-03-23 10:15 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 243ad6a6435cc74e221d81867d1110853ebf6321

httpservermiddlewarepsr-7psr-15

This package is auto-updated.

Last update: 2026-05-30 12:24:26 UTC


README

👁 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.

Requirements

Installation

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

composer require middlewares/base-path

Usage

Set the prefix to remove:

Dispatcher::run([
 new Middlewares\BasePath('/base/path')
]);

fixLocation

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

attribute

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.