fsasvari / laravel-trailing-slash by fsasvari

Adds redirection with trailing slash in Laravel.
124,948
56
3
Package Data
Maintainer Username: fsasvari
Maintainer Contact: sasvari.frano@gmail.com (Frano Sasvari)
Package Create Date: 2017-01-23
Package Last Update: 2024-03-02
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-04-25 15:07:16
Package Statistics
Total Downloads: 124,948
Monthly Downloads: 2,362
Daily Downloads: 117
Total Stars: 56
Total Watchers: 3
Total Forks: 16
Total Open Issues: 7

Laravel Trailing Slash

Adds redirection with trailing slash to Laravel 5.7.

Build For Laravel Latest Stable Version Latest Unstable Version Total Downloads License

Compatibility Chart

| Laravel Trailing Slash | Laravel | PHP | |----------------------------------------------------------------------|-----------|---------| | 0.3.x | 5.7 | 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": "0.3.*"

Step 2: Service Provider

After installing the Laravel Trailing Slash library, register the LaravelTrailingSlash\RoutingServiceProvider in your config/app.php configuration file:

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

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

Step 3: .htaccess

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's 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