자주 업데이트되는 정적 사이트의 임시 리디렉션(302, 307)

자주 업데이트되는 정적 사이트의 임시 리디렉션(302, 307)

선택적 배경(XY 문제를 방지하기 위해):나는 와 같은 URL을 포함하는 정적 사이트에서 작업하고 있습니다 www.example.com/książka/. 해당 URL의 문제점은 URL을 공유하거나 IM 프로그램에 붙여넣을 때 분음 부호 문자가 확장되어 %<hex>읽을 수 없게 된다는 것입니다 www.example.com/ksi%C4%85%C5%BCka/. 그래서 저는 다음을 고려하고 있습니다.

  • 페이지의 표준 URL을 다음과 같이 설정합니다. www.example.com/ksiazka/("ąż"는 "az"로 대체됨)
  • 에 임시 리디렉션(HTTP 302 또는 307)을 반환합니다 www.example.com/książka/.

작동하지 않는 것:

자동 주소 다시 쓰기. 이유: "ąż"에서 "az"로 변경하는 것이 아니라 "az"에서 "ąż"로 변경하거나 "ąz", "aż", "áz" 또는 기타 여러 가능성 중 하나로 변경하는 것입니다. 리디렉션은 기존 페이지의 전체 목록을 알고 있는 페이지 생성 중에 생성되어야 하며, 따라서 "ksiazka"가 "książką"가 아닌 "książka"로 리디렉션되어야 함을 알 수 있습니다.

페이지당 1개의 HTTP 리디렉션을 구성해야 합니다. 새 기사를 업로드할 때마다 새로운 HTTP 리디렉션이 하나씩 필요합니다.

NGINX 구성을 편집하려면 루트 액세스가 필요하며 일반 사용자의 권한으로 사이트를 배포하고 있습니다. Apache에서는 에 몇 가지 지시문을 추가할 수 있지만 .htaccess이는 성능에 문제가 있으며 NGINX에서는 사용할 수 없습니다.

/etc/nginx/sites-available/mysite즉, 의 내용을 가져오기 위해 포함을 만들 수 있습니다 /home/myuser/mysite/_redirects. 따라서 서버는 일반 사용자가 제어하는 ​​파일을 읽습니다. 단점은 일반 사용자에게 모든 NGINX 구성 옵션에 대한 액세스 권한을 제공하는 반면 리디렉션만 설정하면 된다는 것입니다.

이 문제를 해결하려면 사용자가 업로드한 파일을 읽고 리디렉션에 필요한 정보만 포함하는 자동화 부분을 작성할 수도 있습니다. Netlify의 파일 과 같은 것입니다 _redirects. 하지만 이건… 잘못된 것 같아요. 너무 관습적이다.

요약하자면:

  • 정적 사이트
  • HTTP 302 또는 HTTP 307 필요
  • 빈번한 업데이트(수동 편집 /etc/nginx불가능)
  • 권한이 없는 시스템 사용자로 업로드된 파일
  • 해당 사용자에게 웹 서버에 대해 너무 많은 권한을 부여하지 않음

NGINX에서 이 작업을 수행하는 좋은 방법은 무엇입니까?

관련 정보