fsasvari/laravel-trailing-slash

Adds redirection with trailing slash in Laravel.
177,039 61
Install
composer require fsasvari/laravel-trailing-slash
Latest Version:v7.0.1
PHP:^8.2
License:MIT
Last Updated:Mar 28, 2025
Links: GitHub  ·  Packagist
Maintainer: fsasvari

Laravel Trailing Slash

Adds url formatting and redirection with trailing slash to Laravel framework versions 13.x, 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
8.x 13.x 8.3+
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": "8.*"

Step 2: Service Provider

Laravel automatically discovers this package via package auto-discovery, so manual registration is usually not required.

If you have disabled auto-discovery or prefer manual registration:

  • For Laravel 11.x and above, register the LaravelTrailingSlash\RoutingServiceProvider in your bootstrap/providers.php configuration file:
return [
    // Package Service Providers...
    // ...
    LaravelTrailingSlash\RoutingServiceProvider::class,
    // ...
];
  • For 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

Related Packages

codezero/laravel-uri-translator

Translate a URI or individual slugs.

379,469 6
pavankumar/qrcoder

This is a Laravel 5 package for generating QR codes.

77 5
dusterio/link-preview

Link preview generation for PHP with Laravel support

336,965 127