переписать HTTP глаголы - PullRequest
       1

переписать HTTP глаголы

1 голос
/ 27 января 2012

У меня есть REST API, который вызывается веб-приложением Javascript. Файлы HTML / CSS и JS хранятся локально и обслуживаются Apache, а API REST вызывается с помощью директивы ProxyPass Apache на удаленном HTTP-сервере. Это мой фактический файл httpd.conf (машина для разработки на windows):

<VirtualHost *:80>
    ServerName myapp.com
    DocumentRoot C:\myapp

    <Directory />
        Allow from all
    </Directory>

    RewriteLog C:\Temp\rewrite.log
    RewriteLogLevel 0
    RewriteEngine On

    # Let apache serve static files
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f
    RewriteRule (.*) $1 [L]

    ProxyPass / http://192.168.0.23:4567/ retry=0
    ProxyPassReverse / http://192.168.0.23:4567/
    ProxyPreserveHost on
</VirtualHost>

Моя проблема в том, что удаленный сервер (192.168.0.23) не поддерживает запросы DELETE и PUT (при попытке сделать это я получаю сообщение об ошибке «Метод запрещен»). К сожалению, у меня нет доступа к этому серверу, но я могу разработать API REST, предоставляемый им. То, что я хотел бы сделать, это

  • проверить, является ли входящий запрос DELETE или PUT
  • установить HTTP-заголовок по запросу. X-ORIGINAL-REQUEST_METHOD: DELETE
  • перенаправить запрос на удаленный сервер (192.168.0.23) как POST

Можно ли это как-то сделать с помощью правил переписывания Apache или другого модуля?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...