Необходимо перенаправить Apache только для определенных методов HTTP

#apache #.htaccess #redirect

#apache #.htaccess #перенаправление

Вопрос:

Есть ли способ выполнить перенаправление условно для метода / глагола HTTP-запроса? Я хочу перенаправить все запросы PROPFIND в корень документа, чтобы:

PROPFIND / HTTP/1.1

перенаправляется в /MyApp/carddav/, но

GET / HTTP/1.1

обрабатывается нормально. Причина, по которой мне нужно это сделать, заключается в том, что реализация CardDAV в адресной книге OS X всегда ожидает возможности связаться с сервером CardDAV по адресу / , и я запускаю его по адресу / MyApp / carddav / с Tomcat.

В идеале, это можно было бы сделать с помощью файла .htaccess, который пользователь мог бы просто поместить в корневой каталог документов своего веб-сервера, вместо изменения файла httpd.conf, но я мог бы смириться с любым подходом.

Ответ №1:

Я понял это. Я добавил это в конец моего файла httpd.conf:

 RewriteEngine on
RewriteCond  %{REQUEST_METHOD}  ^PROPFIND$
RewriteRule  ^/$                 /MyApp/carddav/  [R,L]