PHP middleware to remove a path prefix from a request uri
PHP
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
src
test
.gitignore
LICENSE
README.md
composer.json
phpcs.xml
phpunit.xml

README.md

Base Path Middleware for PHP

This middleware just removes a prefix from the request uri.

Installation

This middleware can be installed with composer.

$ composer require los/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

Zend Expressive

If you are using expressive-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 ...
];