Pertanyaan wget --convert-links menambahkan 'index.html'


Saya mencoba untuk mencerminkan situs web menggunakan wget.

Sebagian besar tautan di situs web mengarah ke subfolder seperti http://foo.com/x/.

Namun, ketika saya gunakan --convert-links, itu menulis ulang url ke http://foo.com/x/index.html.

Adakah yang bisa menawarkan solusi untuk menghentikan nama file ini ditambahkan ke tautan url?


2
2018-04-26 09:05


asal




Jawaban:


Saat Anda menjelajah ke situs web sebagai http://example.com/foo/bar apa yang sebenarnya terjadi adalah ini:

  1. Anda meminta http://example.com/foo/bar
  2. Situs web mengalihkan Anda ke http://example.com/foo/bar/
  3. Anda meminta http://example.com/foo/bar/
  4. Situs web mencari entri standar dalam direktori (apa yang tergantung pada server web) dan mengembalikannya. Jika tidak ada entri default maka kembalikan daftar direktori atau kembalikan "Forbidden".

Entri default, seperti yang saya katakan, tergantung pada server web dan pengaturannya.

Entri default termasuk:

  • index.html
  • index.htm
  • index.php
  • index.cgi
  • default.htm¹

Ketika beroperasi secara lokal dan tidak melalui server web, tidak ada cara bagi filesystem untuk membalas dengan entri default karena tidak memiliki konsep situs web atau index.html atau semacamnya. Urutan kejadian untuk filesystem lokal akan seperti ini:

  1. Buka / path/to/example.com/foo/bar
  2. File ini adalah sebuah direktori. Inilah daftar file.
  3. Tampilkan daftar file.

Ketika mencerminkan situs web dengan wget tidak mungkin menyimpan URL sebagai file tanpa file entri default untuk menyimpan data ke dalam direktori, sehingga ia membuat satu (default: index.html). Opsi --convert-links menulis ulang URL dalam file untuk memastikan bahwa mereka menunjuk ke file index.html yang baru dibuat ini dan bukan hanya nama direktori.

Jika situs web tidak memiliki entri default, maka akan dikirimkan daftar direktori dengan baik (jika izin diizinkan). Ini akan disimpan dalam file index.html.

Ini adalah operasi yang diinginkan karena memastikan bahwa ketika Anda mengklik sebuah tautan secara lokal menunjuk ke file yang ingin Anda lihat dan bukan direktori yang berisi file tersebut. Ini adalah inti dari penggunaan opsi --convert-links. Anda tidak dapat memiliki salinan lokal situs web tanpa file index.html lokal. Yang lain akan merusak salinan lokal situs tersebut.

Jadi tidak, Anda tidak dapat menghentikan --convert-link dari menambahkan index.html karena diperlukan untuk bekerja secara lokal.

¹ Yang ini spesifik Microsoft - percaya mereka untuk melakukannya sepenuhnya berbeda dengan orang lain.


3
2018-04-26 09:53



Saya tidak memiliki masalah dengan file yang dibuatnya, atau namanya, tetapi ketika wget menulis ulang tautan yang dipaksakannya termasuk 'index.html' di tag anchor, yang sangat bagus jika saya hanya dapat menggunakan filesystem dan browser web, tetapi tidak akan mengizinkan saya untuk menghostingnya di server web saya tanpa dan menggunakan 'entri default' untuk menentukan apa nama file default yang harus dicari. - maxp