Как включить метод PUT в apache php 5.0 - PullRequest
2 голосов
/ 10 января 2012

У меня есть контент в htaccess

Options FollowSymLinks

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule .* index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

Как добавить метод включения PUT? Спасибо

Ответы [ 3 ]

2 голосов
/ 06 февраля 2012

Вот решение, которое может работать для вас

  1. Во-первых, служебный файл для поддержки дайджест-аутентификации HTTP, который может быть расположен в целевом каталоге (или в обычном PHP include каталог, если вы можете настроить его): загрузить и переименовать dauth.php

  2. Во-вторых, в соответствующем каталоге поместите следующий скрипт PHP: скачать и переименовать put.php

  3. В-третьих, сохраните следующий файл .htaccess в целевом каталоге: замена '/ path-to-target-directory' на относительный к домену путь (например, если целевой файл может быть прочитан в http://mydomain/x/y/z.html, тогда каталог / path-to-target-directory будет '/ x / y'): скачать и переименовать .htaccess

.htaccess пример:

Options FollowSymLinks

RewriteEngine on
RewriteBase /path-to-target-directory
RewriteCond %{REQUEST_METHOD} !PUT
RewriteRule ^/put\.php$ - [F]
RewriteCond %{REQUEST_METHOD} PUT
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/put\.php$ - [F]
RewriteCond %{REQUEST_METHOD} PUT
RewriteRule ^(.*)$ put.php?url=$1 [L]

Для получения дополнительной информации см .: Здесь

0 голосов
/ 08 февраля 2012

Никаких действий не требуется для "включения" запросов PUT с помощью Apache.

, если вы имеете в виду, что вы не получаете данные, отправленные с запросом PUT, - вам нужен некоторый php-код, подобный этому, в вашем коде:

 if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
     $data = file_get_contents('php://input');
 }

, поскольку запрос PUT не будет заполняться $_POST (очевидно, поскольку это не запрос POST).

0 голосов
/ 03 февраля 2012

Соглашения говорят о заголовке X-HTTP-METHOD-OVERRIDE, который транспортирует базовый метод, который будет использоваться (в запросе POST).

Вы можете получить этот заголовок запроса в своем приложении php, чтобы определить, обрабатываете ли выЗапрос PUT.

...