How to Remove index.php from url in 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...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- How to Deploy Project with Laravel Vapor?
- Laravel Http Curl Get Request Example
- Laravel Sweet Alert Confirm Delete Example
- How to Restore Deleted Records in Laravel?
- Laravel Table Row Inline Editing Tutorial
- Laravel Shopping Add to Cart with Ajax Example
- Laravel Custom Email Verification System Example
- Laravel 8 Install Vue JS Example Tutorial
- Laravel 8 Socialite Login with Google Account Example
- Laravel 8 Mail | Laravel 8 Send Email Tutorial
- Laravel Unique Validation With Soft Delete Example