我已经安装了 SilverStripe 4 的博客模块,但不想要它可用的所有不同路由。
例如,我想删除"配置文件","存档"和"标签"路由。这些路由由模块的 BlogController 类定义。
如何确保这些响应替换为 HTTP 404 响应?
在your_module_folder/_config/config.yml
_if内,您指示它应该After
blog
模块处理,并定义它应该覆盖它们的路由:
---
name: your_module
After:
- 'blog/*'
---
SilverStripeControlDirector:
rules:
'profile/': 'MyCustomController'
'archive/': 'MyCustomController'
'tag/': 'MyCustomController'
请查看路由文档
控制器应只有一个引发 404 http 错误的操作。
use SilverStripeControlDirector;
use SilverStripeViewRequirements;
class MyCustomController extends Controller {
private static $allowed_actions = ['index'];
public function index(HTTPRequest $request) {
return $this->httpError(404, "Not Found");
}
}