Как удалить маршруты, добавленные другими вендор-модулями в SilverStripe 4? - PullRequest
0 голосов
/ 09 октября 2018

Я установил модуль Blog для SilverStripe 4, но не хочу, чтобы все доступные маршруты были доступны.

Я хочу удалить, например, "profile", "archive" и "tag"маршруты.Эти маршруты определяются классом BlogController модуля.

Как я могу убедиться, что они заменены ответом HTTP 404?

1 Ответ

0 голосов
/ 18 октября 2018

В пределах your_module_folder/_config/config.yml _Если вы указываете, что он должен быть обработан After модуль blog, и вы определяете эти маршруты, он должен перезаписывать их:

---
name: your_module
After:
  - 'blog/*'
---
SilverStripe\Control\Director:
  rules:
    'profile/': 'MyCustomController'
    'archive/': 'MyCustomController'
    'tag/': 'MyCustomController'

Пожалуйста, просмотрите документацию по маршрутизации

Контроллер должен иметь только одно действие, которое выдает ошибку http 404.

use SilverStripe\Control\Director;
use SilverStripe\View\Requirements;

class MyCustomController extends Controller {

    private static $allowed_actions = ['index'];

    public function index(HTTPRequest $request) {
        return $this->httpError(404, "Not Found");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...