wget을 사용하여 웹사이트를 다른 서버로 마이그레이션

wget을 사용하여 웹사이트를 다른 서버로 마이그레이션

예를 들어 에 웹사이트가 있습니다 http://www.abc.com. 에 제공해야 합니다 http://www.cde.com. wget을 사용하여 웹사이트를 다운로드하려고 시도했지만 두 가지 문제가 발생했습니다.

  • 내부 절대 링크가 많이 있습니다. Wget은 이를 상대 링크로 변환할 수 있지만 삽입된 루트 상대 링크(예: /mypath/myfile대신 ../../mypath/myfile) 또는 새 위치의 절대 링크 로 변환하면 http://www.cde.com/mypath/myfile더 안전하다고 느낍니다.
  • 사이트는 탐색을 위해 스크립트를 많이 사용하므로 일부 경로는 다음과 같습니다 http://www.abc.com/index.html?p=123. wget은 이를 다운로드하여 index.html?p=123, index.html?p=456. 오프라인으로 보기에는 괜찮지만 스크립트가 새 사이트에서 작동하기를 원하므로 index.html파일 하나만 필요합니다(필수품, CSS, 스크립트도 있지만 다운로드 방법을 이미 알고 있는 것 같습니다).

"?"를 사용하여 추가 파일을 간단히 삭제할 수 있다는 것을 알고 있습니다. 파일 이름에 있지만, 애초에 불필요한 다운로드를 피하고 싶습니다.

이 두 가지 문제를 어떻게 해결할 수 있습니까?

답변1

나는 당신이 wget으로 원하는 것을 할 수 없다고 생각합니다.

문제는 wget이 브라우저가 보는 것과 똑같이 페이지를 본다는 것입니다. 이는 실제 소스 파일이 PHP 파일이거나 Ruby 파일 등일지라도 wget이 HTML 코드만 가져오는 것을 의미합니다.

웹 사이트의 소유자인 경우 sftp, ftp 또는 scp를 사용하여 웹 사이트 루트 폴더에 액세스한 다음 전체 페이지를 새 서버에 복사할 수 있어야 합니다.

이제 좋은 리팩토링 도구가 포함된 편집기를 사용하여 모든 이전 링크를 새 도메인 이름과 일치하도록 변경할 수 있습니다.

답변2

원본 사이트가 정적 콘텐츠가 포함된 정적 페이지로만 구성되어 있지 않은 경우 사이트를 마이그레이션하는 것은 좋지 않지만 wget실제로는 그렇지 않습니다.

대부분의 경우 페이지의 콘텐츠는 미리 정의된 템플릿과 데이터베이스나 하드 드라이브와 같은 일부 영구 저장소에 있는 데이터를 사용하여 템플릿 렌더링 엔진(아마도 더 복잡한 프레임워크의 구성 요소)에 의해 서버 측에서 생성되거나 사용됩니다. 사용자에 의해.

예를 들어, 양식에 대한 링크는 관련 페이지의 콘텐츠가 동일한 템플릿(예: ) 및 데이터베이스의 데이터를 사용하여 서버 측에서 생성되었음을 나타낼 http://www.abc.com/index.html?p=123수 있습니다 . 여기서 제품의 ID는 123이고 ID는 123인 경우가 있습니다. 다른 ID 456에서.http://www.abc.com/index.html?p=456index_template.php

따라서 웹사이트를 다른 위치로 이동하려면 웹사이트의 소스 코드와 모든 영구 데이터에 액세스할 수 있어야 합니다. 그래야만 원래 웹사이트의 완전한 기능을 갖춘 복제본을 만들 수 있습니다.

관련 정보