Wikipedia에 대한 Privoxy 리디렉션 규칙

Wikipedia에 대한 Privoxy 리디렉션 규칙

HTTP Wikipedia[en,de] 트래픽을 HTTPS로 리디렉션하는 몇 가지 Privoxy 규칙이 있습니다. ("user.action" 파일의 작은 섹션)

{ +redirect{s@http://en.wikipedia.org/wiki/@https://secure.wikimedia.org/wikipedia/en/wiki/@} }
.en.wikipedia.org

{ +redirect{s@http://de.wikipedia.org/wiki/@https://secure.wikimedia.org/wikipedia/de/wiki/@} }
.de.wikipedia.org

그래서 질문이 있습니다: "regexp"나 다른 것을 "en", "de"에 넣을 수 있는 방법이 있나요? 수백 가지 다른 언어가 있는데, 그것들을 모두 적어 두는 것은 좋지 않은 해결책이라고 생각합니다. <

질문 하나 더: 지금까지 내 솔루션이 괜찮은가요? 물어보니 방문하면https://secure.wikimedia.org/wikipedia/en/wiki/File:Nokota_Horses_cropped.jpg 괜찮습니다. HTTPS를 사용합니다. 하지만 이미지를 클릭하면:http://upload.wikimedia.org/wikipedia/commons/d/de/Nokota_Horses_cropped.jpg HTTP를 사용합니다! 그래서 이것은 좋지 않습니다. 이미지가 HTTP 전용 서버에 있습니까? 아니면 HTTPS에서 이미지를 보기 위해 다른 리디렉션 규칙을 작성할 수 있습니까?

답변1

Privoxy의 리디렉션 작업은 제한된 정규식 세트를 사용하여 URL을 일치시키고 다시 작성합니다. 다행히 역참조가 지원됩니다. 언급한 단일 세 글자 코드뿐만 아니라 두 글자 언어 코드를 지원하는 방식으로 리디렉션 일치를 다시 작성할 수 있습니다.

{ +redirect{s@http://(..|war).wikipedia.org/wiki/@https://secure.wikimedia.org/wikipedia/$1/wiki/@} }
.wikipedia.org

원래 두 글자로 된 언어 코드를 "(..|war)"로 바꾸었습니다. 괄호는 나중에 "$1"이라고 부를 수 있는 역참조를 만듭니다. 이 두 점은 두 문자와 일치합니다. 파이프 문자는 양쪽 문자열을 일치시키는 논리적 OR 연산자입니다. 일치 그룹에서 파이프를 여러 번 사용할 수 있습니다. 단일 정규식에서 여러 역참조를 사용할 수 있습니다. 참조 일치에 사용되는 숫자를 늘립니다(예: $2, $3 등).

Privoxy 사용자 설명서 부록정규식 지원에 대한 설명과 더 유용한 예제가 있습니다.

두 번째 문제의 경우 HTTPS로 리디렉션하려는 각 URL에 대해 추가 리디렉션 작업을 작성해야 합니다. 각 사이트의 URL 패턴에 대한 정규식을 조정해야 하고, 물론 사이트도 SSL을 통해 콘텐츠를 제공해야 하기 때문에 이는 문제가 될 수 있습니다.

관련 정보