Sitemap.xml tương tự như một tấm bản đồ giúp dẫn đường cho các con Bot của công cụ tìm kiếm đi theo và lập chỉ mục. Mỗi URL trên website giống như một tuyến đường phân nhánh. Bot hay Spider sẽ đi theo những con đường đó để thu thập thông tin đưa về cơ sở dữ liệu ở máy chủ.

Trong Laravel bạn cũng tạo ra được một Sitemap khá dễ dàng. Bài viết này sẽ hướng dẫn bạn thiết lập chức năng sitemap cho website sử dụng Laravel.

Bước 1: Bước đầu tiên mình luôn bắt đầu từ Model đó là tạo ra 1 file là SiteModel.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use DB;

class SitemapModel extends Model
{
    use HasFactory;
    public static function getuserData(){
    $value=DB::table('posts')->get();
    return $value;
}
}

Nó sẽ lấy dữ liệu từ bảng posts. Nếu bạn đặt bảng với tên khác thì cần thay đúng.

Bước 2: Tiếp đến là Controller với tập tin SitemapController.php

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use App\Models\SitemapModel;
use Illuminate\Http\Request;


class SitemapController extends Controller
{
    
    public function index(Request $r)
    {
       
        $posts = SitemapModel::getuserData();

        return response()->view('sitemap', compact('posts'))
          ->header('Content-Type', 'text/xml');

    }
}

Bước 3: Tiếp tục đến View mình tạo ra một file là sitemap.blade.php

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    @foreach ($posts as $post)
        <url>
            <loc>{{url($post->url)}}</loc>
            <changefreq>daily</changefreq>
            <priority>0.6</priority>
        </url>
    @endforeach
</urlset>

Bước 4: Và cuối cùng đến routes, mở file web.php ra rồi chèn đoạn mã này vào

Route::get('sitemap.xml','App\Http\Controllers\[email protected]');

Cuối cùng bạn truy cập vào đường dẫn http://localhost/quachquynh/sitemap.xml trên localhost. Nếu chưa remove /public/ thì bạn phải thêm /public/sitemap.xml vào nhé.

Cùng chủ đề

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *