Тема Дефолт 3.х, method_exists и ошибка 403 на сервере

Есть в теме Дефолт в самом начале index.html конструкция

{if $wa->shop}
    {if method_exists($wa->shop, 'checkout')}
        {$_cart_url = $wa->shop->checkout()->cartUrl()}
    {else}
        {$_cart_url = $wa->getUrl('shop/frontend/cart')}
    {/if}
{/if}

которая призвана отдавать нужный url корзины для разных типов оформления заказа, согласно настройкам витрины.

Иду в приложение Сайт - Дизайн - Шаблоны и редактирую index.html или просто нажимаю кнопку Сохранить даже не меняя содержимого файла. В этот момент ловлю Ошибку 403 от сервера с сообщением, что /адрес_админки/site/ недоступна. Ыыы. Однако.

Ок. Делаю иначе. Беру этот кусок кода в {*  *}. То же самое. Ошибка 403.

Беру этот кусок кода и ставлю его в любой другой шаблон, допустим в error.html. Проблем нет. Шаблон сохраняется.

В итоге пока определяю "колхозным" способом нужный мне $_cart_url, а стандартную конструкцию темы Дефолт пришлось выкинуть.

Вопрос в следующем. Что такого может быть в строке

{if method_exists($wa->shop, 'checkout')}

чтобы так плющило сервер? И какие именно опции в настройках сервера могут приводить к такому поведению из-за строки в редакторе кода, когда я правлю index.html? Разве не должен редактор кода кушать всё без таких выкрутасов?

1 ответ

  • 1

    Прежде всего, если у вас используется mod_security или другой файрвол, попробуйте временно отключить на хостинге или добавить необходимые исключения, обычно из-за этого могут возникать проблемы. 

    • +1
      replicant replicant 23 июля 2019 17:41 #

      Хостер втихаря добавил mod_security и он действительно косячит. Приходится или сооружать исключения или отключать целиком. Уже ранее разобрался с этим.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите