如何删除 SilverStripe 4 中其他供应商模块添加的路由?



我已经安装了 SilverStripe 4 的博客模块,但不想要它可用的所有不同路由。

例如,我想删除"配置文件","存档"和"标签"路由。这些路由由模块的 BlogController 类定义。

如何确保这些响应替换为 HTTP 404 响应?

your_module_folder/_config/config.yml_if内,您指示它应该Afterblog模块处理,并定义它应该覆盖它们的路由:

---
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");
}
}

最新更新