2

Я пытаюсь отразить сайт с помощью wget.

Большинство ссылок на сайте указывают на подпапку, например, http://foo.com/x/ .

Однако когда я использую --convert-links , он переписывает URL-адрес на http://foo.com/x/index.html .

Может кто-нибудь предложить решение, чтобы это имя файла не добавлялось к URL-ссылке?

1 ответ1

3

Когда вы переходите на веб-сайт http://example.com/foo/bar, то, что на самом деле происходит, это:

  1. Вы запрашиваете http://example.com/foo/bar
  2. Сайт перенаправляет вас на http://example.com/foo/bar/
  3. Вы запрашиваете http://example.com/foo/bar/
  4. Веб-сайт ищет запись по умолчанию в каталоге (что зависит от веб-сервера) и возвращает ее. Если записи по умолчанию нет, то либо верните список каталогов, либо верните "Запрещено".

Запись по умолчанию, как я уже сказал, зависит от веб-сервера и его настроек.

Записи по умолчанию включают в себя:

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

При работе локально, а не через веб-сервер, файловая система не может ответить записью по умолчанию, так как она не имеет понятия о веб-сайтах, index.html или чем-то подобном. Последовательность событий для локальной файловой системы будет такой:

  1. Откройте /path/to/example.com/foo/bar
  2. Этот файл является каталогом. Вот список файлов.
  3. Показать список файлов.

При зеркалировании веб-сайта с помощью wget невозможно сохранить URL-адрес в виде файла, не имея файла ввода по умолчанию для хранения данных в каталоге, поэтому он создает его (по умолчанию: index.html). Опция --convert-links перезаписывает URL-адреса в файлах, чтобы они указывали на этот вновь созданный файл index.html, а не только на имя каталога.

Если веб-сайт не имеет записи по умолчанию, он отправит список каталогов в хорошем формате (если позволят разрешения). Это будет сохранено в файле index.html.

Это желательная операция, так как она гарантирует, что при локальном нажатии ссылки она указывает на файл, который вы хотите просмотреть, а не на каталог, в котором находится файл. В этом весь смысл использования опции --convert-links. Вы не можете иметь локальную копию сайта без локальных файлов index.html. Все остальное сломало бы локальную копию сайта.

Поэтому нет, вы не можете остановить --convert-links от добавления index.html, так как он необходим для локальной работы.

Specific Это специфика Microsoft - доверьтесь им, чтобы они делали это совершенно по-другому.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .