목차
1. Siteemap 패키지 설치 (권장)
2. 사이트 맵을 동적으로 생성하십시오
3. 사이트 맵 컨텐츠를 사용자 정의하십시오
4. 캐싱 또는 예정된 세대로 최적화하십시오
5. 정적 사이트 맵 파일을 제공하십시오
최종 노트
PHP 프레임워크 Laravel Laravel 애플리케이션을위한 사이트 맵을 만드는 방법

Laravel 애플리케이션을위한 사이트 맵을 만드는 방법

Aug 20, 2025 am 09:16 AM

Composer를 사용하여 Spatie/Laravel-Sitemap 패키지를 설치하고 필요한 경우 구성 파일을 게시하십시오. 2. 파일에 작성하거나 XML을 직접 출력하여 사이트 맵을 동적으로 생성하고 제공하는 경로를 만듭니다. 3. 데이터베이스의 블로그 게시물과 같은 정적 및 동적 URL을 우선 순위, 변경 빈도 및 마지막 수정 날짜와 같은 정적 및 동적 URL을 추가하여 사이트 맵을 사용자 정의하십시오. 4. 장인 명령을 만들어 사이트 맵을 생성하고 Laravel의 작업 스케줄러를 통해 매일 예약하여 성능을 최적화하십시오. 5. 공개 디렉토리에서 생성 된 sitemap.xml을 제공하고 robots.txt에서 siteemap : https://yoursite.com/sitemap.xml로 참조하여 중복 또는 개발 URL이 유효성이 있는지 확인하십시오.

Laravel 애플리케이션을위한 사이트 맵을 만드는 방법

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

뜨거운 주제

Laravel의 파일에 메시지를 로그인하는 방법은 무엇입니까? Laravel의 파일에 메시지를 로그인하는 방법은 무엇입니까? Sep 21, 2025 am 06:04 AM

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

Laravel에서 API를 인증하는 방법 Laravel에서 API를 인증하는 방법 Sep 18, 2025 am 12:26 AM

installlaravelsanctumviacomposerandpublishitsfiles, thenrunmigrations.2.addehasapitokenstraittotheusermodel.3

해충과 함께 Laravel에서 기능 테스트를 작성하는 방법? 해충과 함께 Laravel에서 기능 테스트를 작성하는 방법? Sep 16, 2025 am 06:12 AM

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

Laravel에서 Hasmanythrough 관계를 사용하는 방법은 무엇입니까? Laravel에서 Hasmanythrough 관계를 사용하는 방법은 무엇입니까? Sep 17, 2025 am 06:38 AM

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

Laravel에서 전체 텍스트 검색을 만드는 방법은 무엇입니까? Laravel에서 전체 텍스트 검색을 만드는 방법은 무엇입니까? Sep 16, 2025 am 03:42 AM

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

Laravel Sanctum으로 API 인증을 구현하는 방법은 무엇입니까? Laravel Sanctum으로 API 인증을 구현하는 방법은 무엇입니까? Sep 19, 2025 am 04:08 AM

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

Laravel에서 Route Resource Controllers를 사용하는 방법은 무엇입니까? Laravel에서 Route Resource Controllers를 사용하는 방법은 무엇입니까? Sep 24, 2025 am 05:05 AM

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

Laravel에서 원시 SQL 쿼리를 작성하는 방법은 무엇입니까? Laravel에서 원시 SQL 쿼리를 작성하는 방법은 무엇입니까? Sep 24, 2025 am 02:55 AM

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

See all articles