PHP middleware to remove a path prefix from request uri

v3.0.0 2021-03-09 14:39 UTC

This package is auto-updated.

Last update: 2024-06-09 21:46:06 UTC


Latest Stable Version Downloads Integrate

This middleware just removes a prefix from the request uri.


This middleware can be installed with composer.

$ composer require slam/basepath


Just add the middleware as one of the first in your application.

For example:

$app->pipe(new \LosMiddleware\BasePath\BasePathMiddleware('/site'));

Every request with /site prefix will be replaced:

/site => /
/site/blog => /blog
/site/contact-us => /contact-us

Mezzio (formely Zend Expressive)

If you are using mezzio-skeleton, you can copy config/ to config/autoload/ and modify configuration as your needs.

Then, add the middleware to your pipeline:


Dynamic base path

In some cases a dynamic base path might be required. This can be achieved with the following code in your configuration file:

$scriptPath = dirname($_SERVER['SCRIPT_NAME']);
return [
    // Use directory of script path if available, otherwise default to empty string.
    'los_basepath' => strlen($scriptPath) > 1 ? $scriptPath : '',
    // rest of the configuration ...