×

Устранение неполадок: ошибка поиска 404

 
При использовании расширенного поиска в HTML-файлах, экспортированных из Dr.Explain, вместо результатов поиска вы можете столкнуться с сообщениями об ошибках с кодом 404.
 
Ошибка 404 означает, что веб-сервер не может найти страницу или файл, который пытается загрузить браузер. Как правило, это проблема конфигурации веб-сервера, а не проблема бэкенда, поскольку бэкенд настроен так, чтобы не возвращать код ошибки 404.
 

Наиболее вероятные причины

 
  • Опечатка в URL: убедитесь, что вы используете правильный путь URL.
  • Отсутствие конфигурации: на веб-сервере нет правила для обработки запросов /drexsearch/.
 

Шаг 1: Проверьте работу бэкенда в браузере

 
  • Откройте свою документацию в браузере.
  • Щелкните на любой раздел в меню.
  • В адресной строке браузера измените URL, удалив имя файла в конце и добавив /drexsearch/ping, например:
    измените http://ваш-сайт.com/docs/some-file.htm
    на http://ваш-сайт.com/docs/drexsearch/ping
  • Нажмите Enter.
 
Что вы должны увидеть: сообщение с текстом "If you see this text, Dr.Explain Search Backend is working..." (если вы видите этот текст, бэкенд Dr.Explain Search работает...)
 
Если вы видите это сообщение: бэкенд работает, но ваш веб-сервер не настроен на правильную переадресацию поисковых запросов. Перейдите к Шагу 3.
 
Если вы видите эту ошибку (или похожую):
 
{"error":"URL \"/drexsearch/ping\" is invalid..."}
 
Это означает, что ваш веб-сервер добавляет лишний префикс (в примере выше — /drexsearch) при переадресации на бэкенд. Перейдите к Шагу 3.
 
Если вы получили другую ошибку: возможно, бэкенд не запущен. Перейдите к Шагу 2, чтобы проверить, работает ли служба бэкенда.
 

Шаг 2: Проверьте бэкенд напрямую

 
Если у вас есть доступ к серверу, подключитесь к нему (например, по SSH) и откройте терминал, затем выполните эту команду:
 
curl http://127.0.0.1:8082/ping
 
Что вы должны увидеть: сообщение с текстом "If you see this text, Dr.Explain Search Backend is working..." (если вы видите этот текст, бэкенд Dr.Explain Search работает...)
 
Если вы видите это сообщение: бэкенд работает, но ваш веб-сервер не настроен на правильную переадресацию поисковых запросов. Перейдите к Шагу 3.
 
Если вы получили ошибку: возможно, бэкенд не запущен. Перейдите к разделу "Устранение неполадок: ошибка поиска 502", чтобы проверить, работает ли служба бэкенда.
 

Шаг 3: Проверьте конфигурацию веб-сервера

 
Этот шаг требует доступа к конфигурационным файлам вашего сервера.
 

Для серверов nginx:

 
Проверьте, что в конфигурации этот блок:
 
location ~ /drexsearch/(.*)$ {
    proxy_pass http://127.0.0.1:8082/$1$is_args$args;
}
 

Для серверов Apache:

 
Проверьте, что в конфигурации есть этот блок:
 
RewriteEngine On
RewriteRule ^(?:.*/)?drexsearch/(.*)$ http://127.0.0.1:8082/$1 [P,L]
 

Распространённые ошибки, на которые стоит обратить внимание:

 
  • Опечатка в пути (например, /drxsearch/ вместо /drexsearch/).
  • В конфигурации nginx отсутствует /$1$is_args$args или в конфигурации Apache отсутствует $1.
  • Неправильный путь к корневому каталогу документации.
 
Если вы нашли ошибку: исправьте конфигурацию и перезапустите веб-сервер. Повторите проверку.
 

Шаг 4: Проверьте журналы ошибок

 
Этот шаг требует доступа к файлам логов вашего сервера.
 

Для nginx:

 
sudo tail -f /var/log/nginx/error.log
 

Для Apache:

 
sudo tail -f /var/log/apache2/error.log
 

Обратите внимание на такие сообщения, как:

 
  • "file not found" — файл по указанному пути не существует.
  • "Primary script unknown" — Apache не может найти файл скрипта.
  • "upstream not found" — путь к бэкенду настроен неверно.
Справочная система создана в Dr.Explain