
たとえば、ウェブサイトがありますhttp://www.abc.com
。に提供する必要がありますhttp://www.cde.com
。 wgetを使用してWebサイトをダウンロードしようとしましたが、2つの問題が発生しました。
- 内部絶対リンクがたくさんあります。 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
。オフラインで表示するのは問題ありませんが、スクリプトが新しいサイトで機能したいので、1つのファイルしかindex.html
必要ありません(必須、CSS、スクリプトもありますが、ダウンロード方法を既に知っているようです)。
「?」を使って追加ファイルを簡単に削除できることを知っています。ファイル名にありますが、そもそも不要なダウンロードを避けたいです。
これら2つの問題をどのように解決できますか?
答え1
私はあなたがwgetで欲しいことをすることができないと思います。
問題は、wgetがブラウザが見ているのと同じようにページを見ることです。これは、実際のソースファイルがPHPファイルでもRubyファイルなどでも、wgetがHTMLコードのみを取得することを意味します。
Webサイトの所有者である場合は、sftp、ftp、またはscpを使用してWebサイトのルートフォルダにアクセスし、ページ全体を新しいサーバーにコピーできる必要があります。
これで、良いリファクタリングツールを含むエディタを使用して、以前のすべてのリンクを新しいドメイン名と一致するように変更できます。
答え2
元のサイトが静的コンテンツを含む静的ページで構成されていない場合は、サイトを移行することはお勧めできませんが、wget
実際にはそうではありません。
ほとんどの場合、ページのコンテンツは、事前定義されたテンプレートと、データベースやハードドライブなどの一部の永続ストレージにあるデータを使用して、テンプレートレンダリングエンジン(おそらくより複雑なフレームワークのコンポーネント)によってサーバー側で作成または使用されます。ユーザーによって。
たとえば、フォームへのリンクは、関連ページのコンテンツが同じテンプレート(たとえば)とデータベースのデータを使用してサーバー側で作成されたことを示しますhttp://www.abc.com/index.html?p=123
。ここで、製品のIDは123、IDは123の場合があります。別のID 456から。http://www.abc.com/index.html?p=456
index_template.php
したがって、ウェブサイトを別の場所に移動するには、ウェブサイトのソースコードとすべての永続データにアクセスできる必要があります。これで、元のウェブサイトの完全な機能を備えたレプリカを作成できます。