ItSolutionStuff.com

How to Remove index.php from url in Laravel?

By Hardik Savani β€’ May 14, 2024
Laravel

In this tutorial we will go over the demonstration of how to remove index.php from url in laravel. We will use laravel 8 remove index.php from url. let’s discuss about remove index php from url laravel digitalocean. This article will give you simple example of remove index.php from url in laravel in ubuntu. Follow bellow tutorial step of remove index.php in laravel 6, laravel 7, laravel 8, laravel 9, laravel 10 and laravel 11.

If you think about SEO perspective then it will generate duplicate link from your mail link with index.php. so if you have open your website link with index.php and without index.php url as like bellow:

Page URL:

// Correct Way

https://example.com/about-us

// Bad Way

https://example.com/index.php/about-us

I think above both link will works but not good practice so you must have to remove index.php from url. so if you open url with index.php then it should redirect to without index.php. so you can do it with following solution.

i will give you simple solution as bellow that will works with any server link digitalocean, aws, go-daddy etc. so let's see bellow solution.

app/Providers/RouteServiceProvider.php

<?php

namespace App\Providers;

use Illuminate\Cache\RateLimiting\Limit;

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\RateLimiter;

use Illuminate\Support\Facades\Route;

use Illuminate\Support\Str;

class RouteServiceProvider extends ServiceProvider

{

/**

* The path to the "home" route for your application.

*

* This is used by Laravel authentication to redirect users after login.

*

* @var string

*/

public const HOME = '/home';

/**

* Define your route model bindings, pattern filters, etc.

*

* @return void

*/

public function boot()

{

$this->removeIndexPHPFromURL();

$this->configureRateLimiting();

$this->routes(function () {

Route::prefix('api')

->middleware('api')

->namespace($this->namespace)

->group(base_path('routes/api.php'));

Route::middleware('web')

->namespace($this->namespace)

->group(base_path('routes/web.php'));

});

}

/**

* Write code on Method

*

* @return response()

*/

protected function removeIndexPHPFromURL()

{

if (Str::contains(request()->getRequestUri(), '/index.php/')) {

$url = str_replace('index.php/', '', request()->getRequestUri());

if (strlen($url) > 0) {

header("Location: $url", true, 301);

exit;

}

}

}

/**

* Configure the rate limiters for the application.

*

* @return void

*/

protected function configureRateLimiting()

{

RateLimiter::for('api', function (Request $request) {

return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());

});

}

}

Now you can create route and check with that:

Create Route

Route::get('/about-us', function () {

dd('About US');

});

now if you open url like bellow then:

https://example.com/index.php/about-us

will redirect to:

https://example.com/about-us

I hope it can help you...

Tags: Laravel
Hardik Savani

Hardik Savani

I'm a full-stack developer, entrepreneur, and founder of ItSolutionStuff.com. Passionate about PHP, Laravel, JavaScript, and helping developers grow.

πŸ“Ί Subscribe on YouTube

We Are Recommending You

β˜…

How to Deploy Project with Laravel Vapor?

Read Now β†’
β˜…

Laravel Http Curl Get Request Example

Read Now β†’
β˜…

Laravel Sweet Alert Confirm Delete Example

Read Now β†’
β˜…

How to Restore Deleted Records in Laravel?

Read Now β†’
β˜…

Laravel Table Row Inline Editing Tutorial

Read Now β†’
β˜…

Laravel Shopping Add to Cart with Ajax Example

Read Now β†’
β˜…

Laravel Custom Email Verification System Example

Read Now β†’
β˜…

Laravel 8 Install Vue JS Example Tutorial

Read Now β†’
β˜…

Laravel 8 Socialite Login with Google Account Example

Read Now β†’
β˜…

Laravel 8 Mail | Laravel 8 Send Email Tutorial

Read Now β†’
β˜…

Laravel Unique Validation With Soft Delete Example

Read Now β†’