Laravel 애플리케이션을위한 사이트 맵을 만드는 방법
Composer를 사용하여 Spatie/Laravel-Sitemap 패키지를 설치하고 필요한 경우 구성 파일을 게시하십시오. 2. 파일에 작성하거나 XML을 직접 출력하여 사이트 맵을 동적으로 생성하고 제공하는 경로를 만듭니다. 3. 데이터베이스의 블로그 게시물과 같은 정적 및 동적 URL을 우선 순위, 변경 빈도 및 마지막 수정 날짜와 같은 정적 및 동적 URL을 추가하여 사이트 맵을 사용자 정의하십시오. 4. 장인 명령을 만들어 사이트 맵을 생성하고 Laravel의 작업 스케줄러를 통해 매일 예약하여 성능을 최적화하십시오. 5. 공개 디렉토리에서 생성 된 sitemap.xml을 제공하고 robots.txt에서 siteemap : https://yoursite.com/sitemap.xml로 참조하여 중복 또는 개발 URL이 유효성이 있는지 확인하십시오.
Laravel 애플리케이션을위한 사이트 맵 작성은 검색 엔진이 사이트를보다 효과적으로 인덱싱하는 데 도움이되는 간단한 프로세스입니다. 사이트 맵에는 웹 사이트의 모든 중요한 페이지가 나열되어 GoogleBot과 같은 크롤러가 콘텐츠를 쉽게 찾아서 순위를 매길 수 있습니다. Laravel에서 동적 사이트 맵을 생성하고 서비스하는 방법은 다음과 같습니다.
1. Siteemap 패키지 설치 (권장)
가장 쉽고 유지 가능한 방법은 spatie/laravel-sitemap
과 같은 전용 패키지를 사용하는 것입니다. 잘 문서화되어 있으며 적극적으로 유지됩니다.
작곡가를 통해 설치하려면 다음 명령을 실행하십시오.
작곡가에는 Spatie/Laravel-Sitemap이 필요합니다
구성 파일 게시 (선택 사항) :
PHP Artisan 공급 업체 : 게시 -provider = "Spatie \ siteemap \ siteemapserviceprovider"
config/sitemap.php
에서 구성 파일이 생성되어 필요한 경우 설정을 사용자 정의 할 수 있습니다.
2. 사이트 맵을 동적으로 생성하십시오
사이트 맵을 제공하기 위해 routes/web.php
에서 경로를 만듭니다.
Illuminate \ http \ request를 사용하십시오. spatie \ siteemap \ sitemapgenerator를 사용하십시오. route :: get ( '/siteemap.xml', function () { // 사이트 맵을 동적으로 생성합니다 siteMapGenerator :: create (config ( 'app.url'))-> writeTofile (public_path ( 'siteemap.xml')); return response ()-> file (public_path ( 'siteemap.xml')); });
또는 더 나은 성능을 얻으려면 장인 명령을 통해 사이트 맵을 생성하고 정적 파일을 제공하십시오.
3. 사이트 맵 컨텐츠를 사용자 정의하십시오
특정 URL, 특히 데이터베이스에서 가져온 것 (블로그 게시물, 제품 등)을 포함시킬 수 있습니다.
다음은 Siteemap을 수동으로 구축하는 예입니다.
spatie \ siteemap \ siteemap을 사용하십시오. spatie \ siteemap \ tags \ url을 사용하십시오. route :: get ( '/siteemap.xml', function () { $ siteemap = siteemap :: create (); // 정적 경로를 추가합니다 $ siteemap-> add (url :: create ( '/')-> setPriority (1.0)-> setchangefrequency ( 'Daily')); $ siteEmap-> add (url :: create ( '/about')-> setPriority (0.8)-> setChangeFrequency ( 'Monthly')); $ siteemap-> add (url :: create ( '/contact')-> setPriority (0.7)-> setchangefrequency ( 'yearly')); // 동적 콘텐츠 추가 (예 : 블로그 게시물) \ app \ models \ post :: where ( 'published', true)-> 각 (function ($ post) use ($ siteemap) { $ siteemap-> 추가 ( url :: create ( "/blog/{$ post-> slug}") -> setLastModificationDate ($ post-> updated_at) -> setchangefrequency ( '주간') -> setPriority (0.9) ); }); // XML로 직접 출력합니다 반환 응답 ($ siteemap-> render (), 200, [ 'content-type'=> '응용 프로그램/xml' ]); });
이 접근법은 파일에 쓰기를 피하고 사이트 맵을 즉시 생성합니다. 그러나 큰 사이트의 경우 속도가 느릴 수 있습니다.
4. 캐싱 또는 예정된 세대로 최적화하십시오
더 나은 성능을 보려면 Laravel의 작업 스케줄러를 사용하여 주기적으로 사이트 맵을 생성하십시오.
장인 명령 만들기 :
PHP Artisan Make : 명령 생성
생성 된 명령 ( app/Console/Commands/GenerateSitemap.php
)에서 논리를 구현하십시오.
Illuminate \ Console \ Command를 사용하십시오. spatie \ siteemap \ siteemap을 사용하십시오. spatie \ siteemap \ tags \ url을 사용하십시오. 클래스를 생성합니다 { 보호 된 $ signature = 'siteemap : generate'; 보호 된 $ description = '사이트 맵 생성'; 공개 기능 핸들 () { $ siteemap = siteemap :: create (); $ siteemap-> add (url :: create ( '/')-> setPriority (1.0)-> setchangefrequency ( 'Daily')); \ app \ models \ post :: where ( 'published', true)-> 각 (function ($ post) use ($ siteemap) { $ siteemap-> 추가 ( url :: create ( "/blog/{$ post-> slug}") -> setLastModificationDate ($ post-> updated_at) -> setchangefrequency ( '주간') -> setPriority (0.9) ); }); $ siteemap-> writeTofile (public_path ( 'setemap.xml')); $ this-> info ( 'siteemap 생성.'); } }
그런 다음 app/Console/Kernel.php
에서 예약하십시오.
보호 기능 일정 (일정 $ 일정) { $ schedule-> command ( 'siteemap : generate')-> daily (); }
이제 php artisan schedule:run
매일 실행하십시오.
5. 정적 사이트 맵 파일을 제공하십시오
일단 생성되면 public
디렉토리에서 sitemap.xml
제공하십시오. /public/sitemap.xml
에 직접 배치하면 특별한 경로가 필요하지 않습니다.
또는 액세스를 제어하려면 경로를 유지하지만 파일을 제공하십시오.
route :: get ( '/siteemap.xml', function () { return response ()-> file (public_path ( 'siteemap.xml')); });
robots.txt
에 사이트 맵을 추가하는 것을 잊지 마십시오.
siteemap : https://yoursite.com/sitemap.xml
최종 노트
- 매우 큰 사이트의 경우 Sitemap을 청크로 나누거나 Siteemap 인덱스를 사용하는 것을 고려하십시오.
- Google Search Console 또는 XML 유효성 검사 서비스 와 같은 도구를 사용하여 항상 사이트 맵을 확인하십시오.
- 개발 또는 중복 URL을 포함하지 마십시오.
기본적으로 spatie/laravel-sitemap
사용하여 경로 및 모델로 사용자 정의하고 주문형 또는 예정된 명령을 통해 생성하십시오. 이것이 Laravel에서 사이트 맵을 처리하는 가장 깨끗한 방법입니다.
위 내용은 Laravel 애플리케이션을위한 사이트 맵을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravelusesmonologtomessagesviathelogfacade, witlefaultLogsStoredInstorage/logss/laRavel.log.configureChannelSinconfig/logging.phptocontroloutput; thedefaultStackChannelAggatesmultipleAndlerLerslikesingle, whitesLog

installlaravelsanctumviacomposerandpublishitsfiles, thenrunmigrations.2.addehasapitokenstraittotheusermodel.3

installpestviacomposerandinitializeitinlaraveltoseTestesting.2.createfeateRetesteStests/featureTovalIdateUser-facingintercations-httprequestsanddatabasechangesingpest 's syntax의 简洁 구문.

AcountryCanaccessAllPostsTroughsUssUshoussUsinghasmanythrough.forexample, withcountries, 사용자 및 포스트 스테이블 링크는 thecountryModelDefinesAhasmanythroughroughlationSphipostviAuser, enableficientindirectDatarectrievalacrosstwoone-to-manyelatio

toimplementfull-textsearchinlaravel, firstAddafull-textIndexintheMiGrationusing $ table-> fullText ([ 'title', 'content']); whenUsewherefullText ([ 'title', 'content'], $ query) Inqueriesforeforficientsection;

ToimplementApiAuthenticationwithlaravelsanctum, youneedtosetuptoken 기반 Authenticaticationathathallowsspas, mobileApps 및 third-partyservicestosecureLycessyourapi.sanctumprovidesalightweightighiSibescan

Laravel Resource Controller는 RESTFul 라우팅을 통해 CRUD 작업을 신속하게 처리하고 Artisan Command를 사용하여 컨트롤러 및 리소스 경로를 생성하며 단일 코드 라인에서 모든 표준 경로를 생성 할 수 있으며, 이는 작업 제한을 지원하고 미들웨어 및 이름 지정을 추가하며, 라우팅 모델 바인딩을 자동으로 파라미터를 파라미터로 향상시키고 개발 구조를 정리할 수 있습니다.

DB Facade를 사용하여 기본 SQL을 실행하고 DB :: SELECT, DB :: Insert, DB :: update 또는 DB :: 삭제를 선택하고 매개 변수 바인딩을 사용하여 SQL 주입을 방지하십시오. DB :: 준비되지 않은 것이 구조적 변화에 사용될 수 있습니다. DB :: RAW와 결합하여 쿼리 생성자에 기본 표현식을 포함시킬 수 있습니다.
