본문으로 건너뛰기

시작하기

이 페이지에서는 Redirect Web 앱에서 규칙을 만드는 일반적인 사용 사례를 설명합니다.

(규칙 설정에 대한 자세한 내용은 규칙 설정 페이지에서 확인할 수 있습니다.)

사례 1: 다른 웹사이트 열기

Twitter에 중독되어 실수로 Twitter를 열 때마다 Insight Timer에서 명상하기로 결정했다고 가정해 봅시다. 이를 위한 규칙을 만들어 봅시다!

1단계. "리디렉션 시작" 설정

먼저 앱의 규칙 편집 화면에서 리디렉션 시작 섹션을 설정해야 합니다. 대상은 https://twitter.com/으로 시작하는 URL입니다.

이 경우 와일드카드 모드에서 다음 패턴을 지정할 수 있습니다:

https://twitter.com/*

와일드카드 모드에서 *는 모든 것(=0개 이상의 문자)과 일치함을 의미합니다.

하지만 잠깐. twitter.comx.com으로 이름이 변경되었습니다. twitter.comx.com으로 간단히 바꿀 수 있지만, 새 소유자가 언제 다시 마음을 바꿔 되돌릴지 아무도 모릅니다. 따라서 twitter.comx.com을 모두 대상으로 합시다.

그렇게 하려면 와일드카드에서 정규 표현식으로 전환하고 다음을 패턴으로 설정합니다:

https://(twitter|x).com/.*
  • (twitter|x): twitterx를 모두 대상으로 합니다. (|파이프라고 합니다.)
  • .*: 와일드카드의 *와 동일합니다. 더 구체적으로, .모든 문자를 의미하고 *이 기호 앞에 있는 모든 것이 여러 번 반복됨을 의미하여 모든 것과 일치합니다.

정규 표현식은 다소 복잡하지만, 익숙해지면 강력한 도구가 될 것입니다. 정규 표현식 패턴이 어떻게 작동하는지 분석하기 위한 놀이터로 RegExr을 사용하는 것을 권장합니다.

노트

정규 표현식에서 (twitter|x).com.모든 문자로 처리됩니다. 따라서 (twitter|x).com/.*는 예를 들어 twitter1com/ 또는 x_com/와도 일치합니다.

이를 피하려면 (twitter|x)\.com/.*로 변경할 수 있습니다. \는 특수 문자를 이스케이프하는 데 사용됩니다.

그러나 일반적인 인터넷 환경에는 그러한 URL이 없습니다. 따라서 원한다면 .을 특수 문자로 남겨둘 수 있습니다. 규칙은 사용자 자신의 용도이므로 적절하다고 생각하는 대로 구현하십시오.

2단계: "리디렉션 대상" 설정

다음과 같이 URL을 지정하기만 하면 됩니다:

https://insighttimer.com/saraauster/guided-meditations/calm

이제 Redirect Web은 Twitter에 접속할 때 명상으로 이동시켜 줍니다!

⬇️ 규칙 다운로드

사례 2: URL에서 쿼리 매개변수 제거

example.com의 URL에 source=twitter라는 쿼리 매개변수가 있고, 자신을 익명화하기 위해 이를 제거하기로 결정했다고 가정해 봅시다.

이 경우 캡처 그룹 처리 옵션이 가장 쉬운 방법입니다.:

  • 리디렉션 시작: https://example.com/* (와일드카드)
  • 리디렉션 대상: $0
  • 캡처 그룹 처리:
    • 그룹: $0
    • 처리: 발생 횟수 바꾸기
      • 대상: &?source=[^&]*
      • 바꾸기: (없음)
      • 텍스트 패턴: 정규 표현식

⬇️ 규칙 다운로드

이 규칙은 다음과 같이 작동합니다:

https://example.com/?source=twitter
↪ https://example.com/?

https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar

더 많은 매개변수를 제거하려면 더 많은 처리를 추가하십시오.

사례 3: URL에 쿼리 매개변수 추가

기본적으로 모바일 레이아웃을 표시하는 example.com이라는 웹사이트가 있지만, 데스크톱 레이아웃을 선호한다고 가정해 봅시다. 다행히 웹사이트는 웹사이트가 표시하는 레이아웃을 지정하는 layout 쿼리 매개변수를 지원합니다. layout=desktop을 자동으로 추가하는 규칙을 만들어 봅시다.

다음과 같이 정의할 수 있다고 생각할 수 있습니다:

  • 리디렉션 시작: https://example.com/.* (정규 표현식)
  • 리디렉션 대상: $0?layout=desktop

$0은 대상 URL을 참조합니다. example.com/hello에 액세스하려고 하면 example.com/hello?layout=desktop으로 리디렉션됩니다. 이 기능을 대체라고 합니다.

와일드카드 모드에서도 내부적으로 정규 표현식으로 변환되므로 대체 기능을 사용할 수 있습니다.

그러나 이러한 설정에는 몇 가지 문제가 있습니다.

문제 1: 무한 루프

현재 설정은 https://example.com/.*https://example.com/hello?layout=desktop을 대상으로 하므로 무한 리디렉션 루프를 생성합니다.

이 경우 정규 표현식으로 다음과 같이 리디렉션 없이 액세스할 수 있는 제외된 URL 패턴을 지정할 수 있습니다:

.*[&?]layout=[^&]*.*
  • .*: 모든 것과 일치
  • [&?]: & 또는 ? 중 하나와 일치
  • [^&]*: &를 제외한 모든 것과 일치

문제 2: 기존 매개변수를 제대로 처리할 수 없음

대상 URL에 이미 example.com/hello?theme=dark와 같은 다른 쿼리 매개변수가 있는 경우, 대상은 example.com/hello?theme=dark?layout=desktop이 됩니다 (URL에 ?가 두 개 있습니다). 그러나 매개변수는 &로만 연결할 수 있습니다. 특수 문자로서의 ?는 매개변수 시작 부분에만 허용됩니다. 따라서 유효한 매개변수로 처리되지 않습니다.

이 경우 설정을 다음과 같이 변경합니다:

  • 리디렉션 시작: (https://example.com/[^?]*)(\?(.*))?
  • 리디렉션 대상: $1?layout=desktop&$3

단계별로 살펴봅시다.

  • (https://example.com/[^?]*): ? 이전 문자까지의 부분과 일치합니다.
    • [^?]*?를 제외한 모든 것과 일치합니다.
    • 이것은 ()로 묶여 있으므로 나중에 $1로 참조할 수 있습니다.
  • (\?(.*))?: 쿼리 매개변수를 의미하는 ?로 시작하는 문자열과 일치합니다.
    • 이것은 패턴 끝에 있는 ? 수량자(0번 또는 1번 일치)에 의해 빈 문자열과도 일치합니다.
    • 바깥쪽 ()와 안쪽 ()는 나중에 $2$3으로 참조할 수 있습니다.

RegExr이 세부 사항을 이해하는 데 도움이 될 수 있습니다.

노트

RegExr은 /\로 이스케이프하지 않으면 오류를 표시합니다. 이스케이프할 수 있지만, Redirect Web은 이스케이프가 필요 없는 Apple의 다른 엔진을 사용하므로 필요하지 않습니다.

이것은 완벽한 해결책이 아닙니다. example.com/helloexample.com/hello?layout=desktop&으로 리디렉션하는데, 이는 URL 끝에 불필요한 &를 포함합니다. 일반적으로 큰 문제는 아니지만, 제거하려면 캡처 그룹 처리를 사용할 수 있습니다.

결론적으로 최종 출력은 다음과 같습니다:

  • 리디렉션 시작: (https://example.com/[^?]*)((\?(.*))?) (정규 표현식)
  • 리디렉션 대상: $1?layout=desktop$3
  • 제외된 URL 패턴: .*[&?]layout=[^&]*.* (정규 표현식)
  • 캡처 그룹 처리:
    • 그룹: $3
    • 처리: 발생 횟수 바꾸기
      • 대상: \?(.*)
      • 바꾸기: &$1

⬇️ 규칙 다운로드

이것은 단지 예시일 뿐입니다. 각 문제를 처리하기 위해 여러 규칙을 만들 수도 있습니다. 훨씬 간단할 수 있습니다.