Nginx는 단일 페이지 앱 내에서 URL을 다시 작성합니다.

Nginx는 단일 페이지 앱 내에서 URL을 다시 작성합니다.

나는 이 nginx 구성에 문제가 있었고 이 사이트를 조사한 후에 그것이 가능한지 궁금합니다.

다음 라우팅을 사용하는 매우 간단한 단일 페이지 앱이 있습니다.

server {
        listen 80 default_server;

        root /var/www/html;

        location / {
                try_files $uri $uri/ /index.html;
        }
}

이 구성에서 제공되는 SPA(중요한 경우 Gatsby 사이트)에는 특정 콘텐츠를 제공하는 domain.com/about와 같은 경로가 포함되어 있습니다. domain.com/about/some-page그러나 SPA가 아닌 이전 버전의 웹 사이트가 있으며 해당 페이지에는 domain.com/about.html및 과 같은 페이지가 있으며 domain.com/about.html#some-page각각 동등한 콘텐츠를 제공합니다.

domain.com/about.html나는 > domain.com/aboutdomain.com/about.html#some-page>를 리디렉션하여 domain.com/about/some-page이미 세상에 있는 사이트에 대한 이전 링크가 여전히 SPA의 올바른 경로로 이동하도록 할 수 있기를 원 하지만 재작성을 생성하려는 모든 시도는 404를 반환합니다. 또는 루트로 직접 돌아갑니다.

domain.com/about.htmlURL을 다시 작성하고(so > domain.com/about) 해당 URL을 리디렉션하여 /index.htmlSPA로 작동하도록 할 수 있습니까 ?

답변1

nginx 구성을 동일하게 유지하고 Reach Router를 사용하여 Gatsby 내의 클라이언트 측에서 URL을 다시 작성함으로써 이 문제를 해결할 수 있었습니다.

관련 정보