문제

나는 가지고있다 GNU WGET 1.10.2 Windows와 Linux 및 -케이 옵션은이 두 가지에서 다르게 동작합니다.

-K,-코버 트 링크는 로컬 파일에 다운로드 된 HTML 포인트에서 링크를 만듭니다.

Windows에서는 다음과 같습니다.

www.example.com/index.html
www.example.com/index.html@page=about
www.example.com/index.html@page=contact
www.example.com/index.html@page=sitemap

그리고 Linux에서는 다음과 같습니다.

www.example.com/index.html
www.example.com/index.html?page=about
www.example.com/index.html?page=contact
www.example.com/index.html?page=sitemap

Apache를 통해 거울을 제공 할 때 질문 마크 이후 부분 이후로 생성 된 4 페이지를 구별하지 않기 때문에 Linux에서는 문제가됩니다.?) 문자는 파일의 쿼리 문자열로 사용됩니다.

내가 이것을 어떻게 제어 할 수 있는지에 대한 아이디어가 있습니까?

감사해요

도움이 되었습니까?

해결책

NTFS 또는 FAT32의 파일 이름에서 물음표 (?)를 사용할 수 없습니다. 이것이 WGET가 대신 AT Symbol (@)을 사용하는 이유입니다.

Linux에서는 대부분의 파일 시스템에서 슬래시 (/) 만 금지되므로 WGET는 물음표를 사용합니다 (URI의 일부이므로).

사용하여 행동을 강요 할 수 있습니다 --restrict-file-names=unix 또는 --restrict-file-names=windows.

WGET 문서에서 :

모드가 "Unix"로 설정되면 WGET는 0-31 및 128–159의 범위에서 문자와 제어 문자를 빠져냅니다. 이것은 Unix와 같은 OS'E의 기본값입니다.

모드가 "wind 범위의 0–31 및 128–159의 제어 문자.이 외에도 WGET는 '+'를 사용하여 '+'를 사용하여 '+'를 사용하여 로컬 파일 이름으로 호스트와 포트를 구분하고 '@'대신 '@'를 사용합니다. ? ' 파일 이름의 쿼리 부분을 나머지 부분과 분리하려면, 저장되는 URL 'www.xemacs.org:4300/search.pl?input=blah'유닉스 모드에서는'로 저장됩니다.www.xemacs.org+4300/search.pl@input=blah'Windows 모드에서. 이 모드는 Windows의 기본값입니다.

다른 팁

Apache를 통해 거울을 제공 할 때 Questionmark (?) 문자가 파일의 쿼리 문자열로 사용되기 때문에 생성 된 4 페이지를 구별하지 않기 때문에 Linux에서는 문제가됩니다.

URL 경로 부분에 물음표를 포함 시키려면 다음을 피할 수 있습니다.

www.example.com/index.html%3Fpage=about

-컨버터 링크는 당신을 위해 이것을 수행해야합니다.

Apache를 통해 거울을 제공 할 때 Questionmark (?) 문자가 파일의 쿼리 문자열로 사용되기 때문에 생성 된 4 페이지를 구별하지 않기 때문에 Linux에서는 문제가됩니다.

이미 늦게 까지이 SED 명령이 나에게 도움이된다면 :

find . -type f -name "*html*" -exec sed -i -r 's/(src|href)=(["\x27])(.*?)(\?)(.*?)\2/\1=\2\3%3F\5\2/g' {} + 

교체? href = 또는 src = %3f의 태그에서. ( x27은 단일 진드기입니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top