Cakephp 3: выдача 403 запрещенной ошибки для put

Я использую версию cakephp 3.3.2 и версию 5.6 php.

Мое действие редактирования выглядит так

public function edit($id = null) {
        $country = $this->Countries->get($id, [
                'contain' => []
            ]);
        if ($this->request->is(['patch', 'post', 'put'])) {
            $country = $this->Countries->patchEntity($country, $this->request->data);
            if ($this->Countries->save($country)) {
                $this->Flash->success(__('The country has been saved.'));

                return $this->redirect(['action' => 'index']);
            } else {
                $this->Flash->error(__('The country could not be saved. Please, try again.'));
            }
        }
        $this->set(compact('country'));
        $this->set('_serialize', ['country']);
    }

Этот код отлично работает на localhost, но на моем реальном хосте (с использованием общего хоста) он дает мне ошибку 403 Forbidden, когда я собираюсь что-то редактировать. Затем я воспользовался почтальоном, чтобы проверить. Затем я увидел, что он отлично работает для get и post, но дает ошибку 403 Forbidden для put. Есть ли какие-нибудь дополнительные настройки в php или cakephp для решения этой проблемы?


person Alimon Karim    schedule 23.09.2016    source источник


Ответы (1)


вы сказали, что он работает на localhost, поэтому это может быть проблема с сервером .. проверьте этот утвержденный ответ - Почему программное обеспечение моего веб-сервера запрещает запросы PUT и DELETE? ответ

person T.Adak    schedule 23.09.2016
comment
Я использую здесь общий хостинг, поэтому может потребоваться изменить .htaccess, но я не знаю, как добавить этот параметр в cakephp htaccess. - person Alimon Karim; 23.09.2016
comment
Я относительно новичок в cakephp ... вы можете попробовать код ограничения в htaccess и проверить, помогает ли он? Насколько я знаю, условие ограничения будет ограничено папкой, содержащей файл htaccess, поэтому вы можете попробовать в базе папка, а также src .. - person T.Adak; 23.09.2016
comment
Я отрицаю метод put и применяю метод post define post во всех формах, тогда моя проблема была решена. В целях безопасности некоторые серверы могут не принимать метод put. Я принимаю ваш ответ, потому что он дал мне направление для решения этой проблемы. - person Alimon Karim; 24.09.2016