Cara membuat sitemap untuk aplikasi Laravel
Pasang pakej Spatie/Laravel-Sitemap menggunakan komposer dan menerbitkan fail konfigurasi jika diperlukan. 2. Buat laluan untuk menjana dan melayani sitemap secara dinamik, sama ada dengan menulisnya ke fail atau mengeluarkan XML secara langsung. 3. Sesuaikan sitemap dengan menambahkan URL statik dan dinamik, seperti catatan blog dari pangkalan data, dengan keutamaan, kekerapan perubahan, dan tarikh pengubahsuaian terakhir. 4. Mengoptimumkan prestasi dengan mencipta perintah artisan untuk menjana sitemap dan menjadualkannya setiap hari melalui penjadual tugas Laravel. 5. Hidangkan sitemap.xml yang dihasilkan dari direktori awam dan merujuknya dalam robots.txt dengan sitemap: https://yoursite.com/sitemap.xml, memastikan ia disahkan dan bebas daripada URL duplikat atau pembangunan.
Mewujudkan sitemap untuk aplikasi Laravel adalah proses mudah yang membantu enjin carian mengindeks laman web anda dengan lebih berkesan. Sitemap menyenaraikan semua halaman penting laman web anda, menjadikannya lebih mudah bagi crawler seperti Googlebot untuk menemui dan menilai kandungan anda. Berikut adalah cara anda boleh menjana dan melayani sitemap dinamik di Laravel.
1. Pasang pakej sitemap (disyorkan)
Cara yang paling mudah dan paling mudah dipelihara ialah menggunakan pakej khusus seperti spatie/laravel-sitemap
. Ia didokumentasikan dengan baik dan diselenggarakan secara aktif.
Jalankan arahan berikut untuk memasangnya melalui komposer:
Komposer memerlukan spatie/laravel-sitemap
Terbitkan fail konfigurasi (pilihan):
PHP Artisan Vendor: Publish --Provider = "Spatie \ SiteMap \ SiteMapServiceProvider"
Ini mewujudkan fail konfigurasi di config/sitemap.php
di mana anda boleh menyesuaikan tetapan jika diperlukan.
2. Menjana sitemap secara dinamik
Buat laluan di routes/web.php
untuk melayani sitemap:
Gunakan Illuminate \ http \ request; Gunakan spatie \ sitemap \ siteMapgenerator; Route :: Get ('/siteMap.xml', fungsi () { // menghasilkan sitemap secara dinamik SiteMapGenerator :: create (config ('app.url'))-> writeToFile (public_path ('sitemap.xml')); respons pulangan ()-> fail (public_path ('siteMap.xml')); });
Sebagai alternatif, untuk prestasi yang lebih baik, menghasilkan sitemap melalui perintah artisan dan menyampaikan fail statik.
3. Sesuaikan kandungan sitemap
Anda mungkin mahu memasukkan URL tertentu, terutama yang ditarik dari pangkalan data (seperti jawatan blog, produk, dll.).
Berikut adalah contoh membina sitemap secara manual:
Gunakan spatie \ sitemap \ sitemap; Gunakan spatie \ sitemap \ tags \ url; Route :: Get ('/siteMap.xml', fungsi () { $ siteMap = siteMap :: create (); // tambah laluan statik $ siteMap-> tambah (url :: create ('/')-> setPriority (1.0)-> setChangeFrequency ('daily')); $ siteMap-> tambah (url :: create ('/about')-> setPriority (0.8)-> setChangeFrequency ('monthly')); $ siteMap-> tambah (url :: create ('/contact')-> setPriority (0.7)-> setChangeFrequency ('tahun')); // Tambah Kandungan Dinamik (misalnya, catatan blog) \ App \ Models \ Post :: Where ('Diterbitkan', Benar)-> Setiap (Fungsi ($ pos) Penggunaan ($ siteMap) { $ sitemap-> tambah ( Url :: create ("/blog/{$ post-> slug}") -> setLastModificationDate ($ post-> dikemas kini_at) -> SetChangeFrequency ('mingguan') -> setPriority (0.9) ); }); // output secara langsung sebagai XML Tindak Balas Pulangan ($ siteMap-> Render (), 200, [[ 'Kandungan-jenis' => 'Aplikasi/xml' ]); });
Pendekatan ini mengelakkan menulis ke fail dan menghasilkan sitemap dengan cepat. Walau bagaimanapun, untuk laman web besar, ini boleh menjadi perlahan.
4. Mengoptimumkan dengan caching atau generasi yang dijadualkan
Untuk prestasi yang lebih baik, menjana sitemap secara berkala menggunakan penjadual tugas Laravel.
Buat perintah tukang:
PHP Artisan Make: Command GenerateSitemap
Dalam arahan yang dihasilkan ( app/Console/Commands/GenerateSitemap.php
), melaksanakan logik:
Gunakan Illuminate \ Console \ Command; Gunakan spatie \ sitemap \ sitemap; Gunakan spatie \ sitemap \ tags \ url; GenerateSiteMap kelas memanjangkan arahan { dilindungi $ tandatangan = 'SiteMap: Generate'; dilindungi $ description = 'menghasilkan sitemap'; mengendalikan fungsi awam () { $ siteMap = siteMap :: create (); $ siteMap-> tambah (url :: create ('/')-> setPriority (1.0)-> setChangeFrequency ('daily')); \ App \ Models \ Post :: Where ('Diterbitkan', Benar)-> Setiap (Fungsi ($ pos) Penggunaan ($ siteMap) { $ sitemap-> tambah ( Url :: create ("/blog/{$ post-> slug}") -> setLastModificationDate ($ post-> dikemas kini_at) -> SetChangeFrequency ('mingguan') -> setPriority (0.9) ); }); $ sitemap-> writeToFile (public_path ('siteMap.xml')); $ this-> info ('sitemap dijana.'); } }
Kemudian jadilahnya dalam app/Console/Kernel.php
:
Jadual Fungsi yang Dilindungi (Jadual $ Jadual) { $ jadual-> perintah ('sitemap: menghasilkan')-> setiap hari (); }
Sekarang, jalankan php artisan schedule:run
melalui Cron (biasanya ditubuhkan pada pelayan) untuk melaksanakannya setiap hari.
5. Hidangkan fail sitemap statik
Sebaik sahaja dihasilkan, serahkan sitemap.xml
dari direktori public
. Tiada laluan khas diperlukan jika anda meletakkannya secara langsung di /public/sitemap.xml
.
Atau, jika anda ingin mengawal akses, simpan laluan tetapi sajikan fail:
Route :: Get ('/siteMap.xml', fungsi () { respons pulangan ()-> fail (public_path ('siteMap.xml')); });
Jangan lupa untuk menambah sitemap ke robots.txt
anda:
SiteMap: https://yoursite.com/sitemap.xml
Nota akhir
- Untuk laman web yang sangat besar, pertimbangkan untuk memisahkan sitemap ke dalam ketulan atau menggunakan indeks sitemap.
- Sentiasa sahkan sitemap anda menggunakan alat seperti Google Search Console atau Perkhidmatan Pengesahan XML .
- Elakkan termasuk pembangunan atau URL pendua.
Pada asasnya, gunakan spatie/laravel-sitemap
, menyesuaikannya dengan laluan dan model anda, dan menghasilkannya sama ada atas permintaan atau melalui arahan yang dijadualkan. Itulah cara paling bersih untuk mengendalikan sitemaps di Laravel.
Atas ialah kandungan terperinci Cara membuat sitemap untuk aplikasi Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT
Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Laravelusmonologtologmessagesviathelogfacade, withdefaultlogsstoredinstorage/logs/laravel.log.configurechannelsinconfig/logging.phptocontroloutput;

InstallLaravelsanctumviacomposerandPublishitsFiles, thenrunmigrations.2.addthasapitokenstraittotheusermodel.3.definelogin, lo gout, anduserroutesinapi.php, usingsanctum'sauth: sanctummiddleware.4.protectapiroutesbyapplytheauth: sanctummiddleware.5.incl

InstallPestviaComposerandinitializeitinlaraveltosetuptesting.2.CreateAfeatureTestSts/featuretovalidateuser-facingIntionsLikeHttprequestsanddatabaseChangesusingPest's Syntax.

Acountrycanaccessallpoststhroughusersusinghasmanythrough.forexample, withcountries, user, andpoststableLesLinkedbyforeignkeys, thecountrymodeldefinesahaSmanythroughrelationshiptopostviauser,

Toimplementfull-textSearchInlaravel, firstaddfull-textIndexIntHemigrationUsing $ Table-> fullText (['tajuk', 'content']); thenusewherefulltext (['tajuk', 'content'], $ quere)

Toimplementapiauthenticationwithlaravelsanctum, youneedtosetuptoken-berasaskan authenticationThatallowsspas, MobileApps, andthird-partyservicestosecurelyaccessyourapi.sanCTumpumpumphrovidesalightweightapproachbyssuingapitokenshatcan

Pengawal Sumber Laravel dengan cepat memproses operasi CRUD melalui penghalaan yang tenang, menggunakan perintah artisan untuk menjana pengawal dan mendaftar laluan sumber, dan boleh membuat semua laluan standard dalam satu baris kod, yang menyokong sekatan tindakan, menambah middleware dan penamaan, dan menggabungkan model penghalaan yang mengikat ke parameter secara automatik.

Gunakan fasad DB untuk melaksanakan SQL asli, pilih db :: pilih, db :: masukkan, db :: kemas kini atau db :: padam mengikut jenis pertanyaan, dan gunakan parameter mengikat untuk mencegah suntikan SQL; DB :: Tidak bersedia boleh digunakan untuk perubahan struktur; Digabungkan dengan DB :: RAW, ungkapan asli boleh tertanam dalam pembina pertanyaan.
