동적 리다이렉트를 어떻게 사용할 수 있나요?

바닐라에서 디스코르스로 이주를 진행 중이며, 8년치 주제를 가져오는 대신 처음부터 새로 시작하기로 결정했습니다. 현재 사이트는 forums.29th.org이므로, 디스코르스가 완전히 설정되고 작동하게 되면 _디스코르스_를 forums.29th.org로 사용하고 바닐라는 vanilla.29th.org 같은 다른 주소로 옮기려 합니다 (이 시점에서 오래된 포럼이 여러 개 있어서 좋은 URL 규칙을 정하는 데 좀 애를 먹고 있습니다!)

따라서 바닐라의 URL 패턴에 일치하는 요청을 다른 도메인으로 리다이렉트하고 싶습니다. 이는 nginx 규칙으로 하면 매우 쉬울 텐데, (a) 디스코르스의 내장 기능(예: 영구 링크)을 사용할 수 있는지 확인하고 싶었고, (b) 만약 불가능하다면 nginx 설정을 올바르게 편집하는 방법을 알고 싶었습니다 (버전 관리도 할 수 있다면 좋겠습니다).

참고로, 바닐라 주제 URL은 다음과 같은 형태입니다:

/discussion/42206/example-topic#latest

감사합니다!

nginx 규칙을 사용해 /discussion 경로를 새/구 도메인으로 리다이렉트하겠습니다. (그리고 구 데이터를 가져오겠지만, 그건 제가 생계를 위해 하는 일입니다)

@pfaffman 감사합니다 - 그런데 nginx 규칙을 수정해야 하는 위치를 어떻게 찾아낼 수 있나요? launcher enter app를 실행해서 /etc/nginx/nginx.conf 파일을 수정해야 하는 건가요? 임시 컨테이너라고 가정하면, 버전 관리되는 무언가를 수정하는 것이 가능할 거라고 생각했는데, 그런가요?

app.yml에 항목을 추가하여 nginx 설정을 수정할 수 있습니다(또는 외부 nginx를 실행할 수 있습니다). 어디로 안내해야 할지 정확히 확신은 없습니다. 다른 목적으로 nginx 설정을 변경하는 예시를 하나 보여드리겠습니다:

  after_ssl:
   # 모든 호스트를 메인 도메인 이름으로 리디렉션하지 않습니다
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /if \(\$http_host[^\}]*\}/m
        to: ""
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: /return 301.*$/
        to: "return 301 https://$host$request_uri;"

완벽하네요. 제가 보고 싶었던 바로 그 내용이었습니다. 감사합니다! 이런 내용은 어디에 문서화되어 있을까요?

여기 도착한 다른 분들을 위해, 저는 서버에 SSH로 접속하여 /var/discourse로 이동하고, vim으로 containers/app.yml을 열어 hooks 섹션까지 스크롤을 내린 후 다음 내용을 추가했습니다:

hooks: # 이 줄은 이미 존재해야 합니다
  after_ssl:
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: "location @discourse {"
        to: |
          location /discussion/ {
            return 301 https://vanilla.29th.org$request_uri;
          }

          location @discourse {
  after_code: # 이 줄은 이미 존재해야 합니다