Next.js에서 동적으로 /robots.txt 파일 생성하기

Next.js 앱에서 동적 /robots.txt 파일 생성하기 Next.js 앱에서 동적 /robots.txt 파일을 제공할 때 고려해야 할 몇 가지 옵션이 있습니다. 이 가이드에서는 getServerSideProps와 API 라우트를 사용하는 권장 접근 방식을 살펴보겠습니다. getServerSideProps 사용하기 첫 번째 단계는 /robots.txt …

title_thumbnail(Next.js에서 Dynamic /robots.txt 파일 생성하기)

Next.js 앱에서 동적 /robots.txt 파일 생성하기

Next.js 앱에서 동적 /robots.txt 파일을 제공할 때 고려해야 할 몇 가지 옵션이 있습니다. 이 가이드에서는 getServerSideProps와 API 라우트를 사용하는 권장 접근 방식을 살펴보겠습니다.

getServerSideProps 사용하기

첫 번째 단계는 /robots.txt 요청을 처리하는 전용 Next.js 페이지를 만드는 것입니다. 예를 들어, pages 디렉토리 아래에 robots.txt.tsx라는 파일을 생성해봅시다.

import React from "react";
import { GetServerSideProps } from "next";

interface Robots {
  ENV: "TEST" | "PROD"
}

export const getServerSideProps: GetServerSideProps<Robots> = async (context) => {
  const { req, res } = context;
  const { host } = req.headers;

  res.write("XXX");
  res.end();

  return { props: { ENV: "TEST" } };
};

const Robots: React.FC<Robots> = (props) => {
  console.log("Rendering Robots...");

  return (
    <div>
      I am Robots
    </div>
  );
};

export default Robots;

위의 코드에서는, getServerSideProps 함수를 정의했습니다. 이 함수는 /robots.txt 요청을 처리합니다. 이 함수 내에서 제공된 context에서 reqres 객체에 접근합니다.

동적 응답을 생성하기 위해 req.headers.host 값을 사용할 수 있습니다. 이를 통해 호스트 이름에 따라 응답을 사용자 정의할 수 있습니다. 예를 들어, 호스트에 따라 다른 robots.txt 내용을 반환할 수 있습니다.

API 라우트 사용하기

또는 API 라우트를 사용하여 robots.txt 내용을 제공할 수도 있습니다. 이렇게 하면 페이지 구성 요소와 props 객체의 불필요한 사용을 피할 수 있습니다.

먼저, /api/robots 엔드포인트를 처리할 API 라우트를 생성하세요:

// /pages/api/robots
export default function handler(req, res) {
    res.send('XXX'); // 여기에 `robots.txt` 내용을 보내세요
}

다음으로, Next.js 구성 파일인 next.config.js를 업데이트하여 /robots.txt 요청을 API 라우트로 변경하세요:

// next.config.js
module.exports = {
    // ...
    async rewrites() {
        return [
            {
                source: '/robots.txt',
                destination: '/api/robots'
            }
        ];
    }
}

결론

위에서 설명한 두 가지 접근 방식 모두 Next.js 앱에서 동적 robots.txt 파일을 제공할 수 있습니다. getServerSideProps 또는 API 라우트 사용의 선택은 특정 요구 사항과 선호도에 따라 결정됩니다.

이러한 단계를 따라하면 Next.js 앱에서 요청에 동적으로 응답하는 robots.txt 파일을 쉽게 생성할 수 있습니다.

검색 엔진이 웹 사이트를 효과적으로 크롤링하고 색인화할 수 있도록 robots.txt 파일에서 크롤링 지침을 올바르게 처리하는 것이 중요하다는 점을 기억하세요.

이러한 방법을 실험하고 프로젝트의 요구 사항에 맞게 수정해보세요. 즐거운 코딩하세요!

참고 자료 :

https://stackoverflow.com/questions/67387483/generating-a-dynamic-robots-txt-file-in-a-next-js-app

같은 카테고리의 다른 글 보기 :

reactjs

Leave a Comment