slam/basepath

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-04-09 21:19:32 UTC


README

Latest Stable Version Downloads Integrate

This middleware just removes a prefix from the request uri.

Installation

This middleware can be installed with composer.

$ composer require slam/basepath

Usage

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/los-basepath.global.php.dist to config/autoload/los-basepath.global.php and modify configuration as your needs.

Then, add the middleware to your pipeline:

$app->pipe(LosMiddleware\BasePath\BasePathMiddleware::class);

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 ...
];