質問: wget--mirrorを使用したクエリ文字列のエスケープ wget --mirror --html-extension --convert-linksを使用してサイトをミラーリングしていますが、post.php?id=#.htmlの形式のファイル名がたくさんあることになります。これらをブラウザで表示しようとすると、ファイルの読み込み時にブラウザがクエリ文字列を無視するため、失敗します。ファイル名の?文字を他のものに置き換える方法はありますか?--restrict-file-names=windowsの答えは正しく機能しました。フラグ--convert-linksおよび--adjust-extension/-e(以前の名前は--html-extensionで、これも機能しますが非推奨です)と組み合わせて、期待どおりに動作するミラーを生成します。wget --mirror --adjust-extension --convert-links --restrict-file-names=windows http://www.example
回答: 次のようなurlを使用すると、ブラウザで問題なく表示されます。file:///tmp/example.com/post.php%3fid=1.html の代わりにfile:///tmp/example.com/post.php?id=1.html 注:ダウンロードしたファイルからの内部リンクに問題がある場合は、ダウンロードが完了する前にwgetを終了したことが原因である可能性があります。 --convert-linksと--html-extensionを指定したので(これらが指定されている場合にのみ適用されます)、wgetは通常、リンクを修正して?の代わりに%3fを使用します。ただし、ダウンロードが完了した後、最後にこれを実行します。中断された場合、リンクは修正されず、この苦境に置かれます。もちろん、いつでもスクリプトを記述してリンクを調べて修正することができますが...