2014-11-11 2 views
-1

Итак, у меня есть этот инструмент, написанный в BASH, который регулярно получает обновления, и я использовал для отображения журнала изменений для него с использованием CURL. Как это:Ошибка CURL в скрипте BASH

changelog=$(curl --silent -q http://website.com/changelog.txt) 

Он работал, но теперь она возвращает следующие:

Changelog: 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>406 Not Acceptable</title> 
</head><body> 
<h1>Not Acceptable</h1> 
<p>An appropriate representation of the requested resource /changelog.txt could not be found on this server.</p> 
<p>Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.</p> 
<hr> 
<address>Apache (Unix) Server at website.com Port 80</address> 
</body></html> 

Любые идеи, почему это происходит сейчас? Или как это исправить?

+2

Этот файл больше недоступен на сайте. –

+0

Что этот вопрос имеет отношение к 'bash'? – Jdamian

+0

Да, он доступен. И имеет ли отношение к BASH, потому что это часть файла сценария BASH? –

ответ

0

... Или как это исправить?

Вы получаете HTML ошибку 406. Это связано с некоторым несоответствием в запросе «принять заголовки», пожалуйста, смотрите здесь:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Может быть, вы можете получить более подробную информацию, если вы запустите локон с некоторые дополнительные параметры:

curl -D - --head http://website.com/changelog.txt 
+0

Ну, для того, что я видел, причиной этой проблемы является последнее исправление безопасности, которое я сделал на своем сервере (который был точно mod_rewrite). Мне придется направить запрос. Но после того, как я попробовал, то же самое. Также я запускаю последние обновления CURL. –