我已经为SilverStripe 4安装了Blog模块,但不希望它具有所有不同的路由。
例如,我要删除“配置文件”,“存档”和“标签”路由。这些路由由模块的BlogController类定义。
如何确保将它们替换为HTTP 404响应?
答案 0 :(得分:1)
在your_module_folder/_config/config.yml
内,如果您表示应After
模块blog
对其进行处理,并定义了应覆盖它们的那些路由:
---
name: your_module
After:
- 'blog/*'
---
SilverStripe\Control\Director:
rules:
'profile/': 'MyCustomController'
'archive/': 'MyCustomController'
'tag/': 'MyCustomController'
控制器只能执行一个引发404 http错误的操作。
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");
}
}