Закрыть страницу от доступа, но оставить для post и get запросов

Пытаюсь сделать оформление заказа на 1 странице немного модифицируя стандартный функционал.

Просьба сильно не пинать. Плагины из магазина, делающие этот функционал мне не подходит (либо шлют 100500 запросов на каждый пук, либо не соответствуют моим других пожеланиям).

Понимаю, что оформление на странице корзины (/cart/) можно можно построить post/get запросами с нее. От этого и отталкиваюсь, делаю свою задачу.

И эти запросы шлются на разные страницы (cart/, cart/save, checkout и т.п.), обрабатываются там и подгружаются в cart и в cheсkout.

Конечно, самый нормальный и правильный вариант переписать экшн shopFrontendCart.action.php и делать все расчеты в нем. Но моих знаний для этого не хватает, поэтому я использую действующий функционал (посылаю запросы со страницы cart/ в другие экшны (или страницы, даже не знаю как правильно сказать), которые делают расчеты доставки и т.п.).

И все нормально работает. Но.

Меня смущает, что адреса страниц checkout/, checkout/shipping доступны, если их набрать напрямую в строке поиска браузера.

Можно ли как-то запретить доступ к ним со строки поиска браузера (чтобы выдавалась 404 например), но при этом мои пост/гет запросы к этим страницам работали?

3 ответа

  • 1

    Первое, что пришло в голову (тщательно не тестировал — возможны подводные камни): создать файл wa-apps/shop/lib/actions/frontend/shopFrontendCheckout.controller.php с таким содержимым:

    <?php
    
    class shopFrontendCheckoutController extends waViewController
    {
        public function execute()
        {
            if (waRequest::isXMLHttpRequest()) {
                $this->executeAction(new shopFrontendCheckoutAction());
            } else {
                throw new waException('Page not found', 404);
            }
        }
    }


  • 1
    Gorec 25 марта 2016 10:26 #

    ну и как результаты?
    мне в принципе нужно примерно тоже - закрыть страницу, чтобы при наборе в ручную в браузере выдавало 404 ошибку. Только сама страница имеет адрес site.ru/prices/ и формируется плагином, но должна при этом пост/гет запросы отрабатывать, т.к. данные этой страницы я вывожу через хелпер через обычную страницу в приложении Магазин.

  • 1
    Gorec 25 марта 2016 10:56 #

    не знаю на сколько правильно, но решил вопрос 301 редиректом в .htacces

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

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