Bỏ index.php trên URL để tối ưu cho SEO
Bài đăng này đã không được cập nhật trong 4 năm
Khi sử dụng framwork Laravel hẳn các bạn không còn lạ gì với đường dẫn index.php
trên URL mặc định trên Laravel nữa, việc này không ảnh hưởng gì đến logic cả nhưng ảnh hưởng đến SEO website của bạn. Một ví dụ điển hình là trang chủ của Laravel:
Sau đây mình sẽ hướng dẫn các bạn bỏ qua index.php
bằng cách sửa file app\Providers\RouteServiceProvider.php
như sau
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Route;
use Str;
class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to your controller routes.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
/**
* Define your route model bindings, pattern filters, etc.
*
* @return void
*/
public function boot()
{
//
parent::boot();
}
/**
* Define the routes for the application.
*
* @return void
*/
public function map()
{
$this->removeIndexPhpFromUrl();
$this->mapApiRoutes();
$this->mapWebRoutes();
//
}
/**
* Define the "web" routes for the application.
*
* These routes all receive session state, CSRF protection, etc.
*
* @return void
*/
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}
/**
* Define the "api" routes for the application.
*
* These routes are typically stateless.
*
* @return void
*/
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
/**
* This will remove the index.php from the URL and prevent canonical conflicts.
*
* @return void
*/
protected function removeIndexPhpFromUrl()
{
if (Str::startsWith(request()->getRequestUri(), '/index.php')) {
$url = str_replace('/index.php', '', request()->getRequestUri());
$url = request()->getSchemeAndHttpHost() . Str::start($url, '/');
if (strlen($url) > 0) {
header("Location: $url", true, 301);
exit;
}
}
}
}
Chúc các bạn thành công. Happy coding and peace out
All rights reserved