fsasvari/laravel-trailing-slash

The package that adds redirection with trailing slash to Laravel framework.

Maintainers

πŸ‘ fsasvari

Package info

github.com/fsasvari/laravel-trailing-slash

pkg:composer/fsasvari/laravel-trailing-slash

Statistics

Installs: 170 947

Dependents: 0

Suggesters: 0

Stars: 61

Open Issues: 5

v7.0.1 2025-03-24 10:22 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT fa7c4a9f3c59eb90e73e826aa7c711d994f0dd5e

  • Frano Sasvari <sasvari.frano.woop@gmail.com>

phpurlrouterredirecturilaravel


README

Adds url formatting and redirection with trailing slash to Laravel framework versions 12.x, 11.x, 10.x, 9.x, 8.x, 7.x, 6.x and 5.x.

πŸ‘ Build For Laravel
πŸ‘ Latest Stable Version
πŸ‘ Latest Unstable Version
πŸ‘ Total Downloads
πŸ‘ License

Compatibility Chart

Laravel Trailing Slash Laravel PHP
7.x 12.x 8.2+
6.x 11.x 8.2+
5.x 10.x 8.1+
4.x 9.x 8.0.2+
3.x 8.x 7.3+/8.0+
2.x 7.x 7.3+
1.x 6.x 7.2+
0.3.x 5.7-5.8 7.1.3+
0.2.x 5.6 7.1.3+
0.1.x 5.5 7.0.0+

Installation

Step 1: Install package

To get started with Laravel Trailing Slash, use Composer command to add the package to your composer.json project's dependencies:

composer require fsasvari/laravel-trailing-slash

Or add it directly by copying next line into composer.json:

"fsasvari/laravel-trailing-slash": "7.*"

Step 2: Service Provider

If you are using Laravel 11.x and above, register the LaravelTrailingSlash\RoutingServiceProvider in your bootstrap/providers.php configuration file:

return [
 // Package Service Providers...
 // ...
 LaravelTrailingSlash\RoutingServiceProvider::class,
 // ...
],

If you are using Laravel 10.x and below, register the LaravelTrailingSlash\RoutingServiceProvider in your config/app.php configuration file:

'providers' => [
 // Application Service Providers...
 // ...

 // Package Service Providers...
 // ...
 LaravelTrailingSlash\RoutingServiceProvider::class,
 // ...
],

Step 3: .htaccess

If you are using apache, copy following redirection code from public/.htaccess to your own project:

<IfModule mod_rewrite.c>
 # Redirect To Trailing Slashes If Not A Folder Or A File...
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_URI} !(/$|\.)
 RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
</IfModule>

Step 4: Routes

In routes/web.php, you must use routes with trailing slashes now:

Route::get('/', function () {
 return view('welcome');
});

Route::get('about/', function () {
 return view('about');
});

Route::get('contact/', function () {
 return view('contact');
});

Usage

Every time you use some Laravel redirect function, trailing slash ("/") will be applied at the end of url.

return redirect('about/');

return back()->withInput();

return redirect()->route('text', ['id' => 1]);

return redirect()->action('IndexController@about');

Change log

Please see CHANGELOG for more information what has changed recently.

Notice

There is a problem with overriding Laravel Paginator and LengthAwarePaginator classes. So, every time you use paginate() method on your models, query builders etc., you must set current path for pagination links. Example:

$texts = Text::where('is_active', 1)->paginate();
$texts->setPath(URL::current());

$texts->links();

Licence

MIT Licence. Refer to the LICENSE file to get more info.

Author

Frano Ε aΕ‘vari

Email: sasvari.frano@gmail.com

Buy me a Beer

πŸ‘ Buy me a Beer