0

Я пытаюсь создать RESTful API и документ. Однако я, кажется, получаю странную ошибку, я не могу понять, как исправить.Переписанный URL-адрес вызывает ошибку 406

Это работает:

curl --header "Accept: application/json" http://api.example.com/v1/method.php?key=test 

Однако, если вы удалите расширение ".php" и запустить этот:

curl --header "Accept: application/json" http://api.example.com/v1/method?key=test 

Вы должны получить сообщение об ошибке 406, если вы запустите его. Теперь, если вы отбрасываете заголовок, который посылает завиток, оба запроса работают нормально. Однако для этого требуется инструмент документации (swagger), который я использую.

Вот мое правило переписывание (найдено here):

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

ответ

0

Попробуйте

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule method method.php [L] 

Ваша операция не удастся.

В вашей внутренней службе указано, что возвращаемый тип ответа не указан в заголовке HTTP-Accept в HTTP-запросе.

Ref: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

  • узнать ответ (тип контента), возвращаемые службой.
  • Укажите это (тип содержимого) в своем запросе. Подтвердите заголовок.

http://en.wikipedia.org/wiki/HTTP_status_code -> 406

+0

Все та же ошибка. – kevc45

+0

@ kevc45 Пожалуйста, отключите Mod_security –

+0

я turnned от mod_security с помощью этого: ' SecFilterEngine Off SecFilterScanPOST Off ' и я получаю Unsurprisingly ту же ошибку. – kevc45