我想知道是否可以在 silverstripe 上设置特定于某种页面类型的自定义 404 页面,而所有其他 404 错误则使用默认页面。
我有一个特定的页面类型“事件”,其中的事件页面在特定日期后未发布。
我还有一个静态页面,其中包含一些事件的链接。此页面 URL 会发送给会员,因此即使某些事件可能已经过去,他们仍然可以访问该页面。
事件一旦通过,就会取消发布,因此点击链接将导致 404 错误页面。该链接在静态页面上仍然可用。
我想为事件页面类型设置一个特定的错误页面,这样当有人点击过去事件的链接时,他们会得到错误页面 A。“此事件已通过,请转到我们的事件页面”
然后,我想要一个常规错误页面 B“找不到页面,请转到我们的主页”,这将是网站上任何其他不正确链接的错误页面。
我有什么办法可以做到这一点吗?我正在使用银条3
对于遇到此问题的任何人的解决方案:
配置.yml
RequestHandler:
extensions:
- ExpiredEventRedirectExtension
ContentController:
extensions:
- ExpiredEventRedirectExtension
ModelAsController:
extensions:
- ExpiredEventRedirectExtension
ExpiredEventRedirectExtension.php
public function onBeforeHTTPError404($request)
{
$urlSegment = $request->param('URLSegment');
if ($urlSegment == "events") {
$response = new SS_HTTPResponse();
$response->redirect("/event-no-longer-available/");
}
throw new SS_HTTPResponse_Exception($response);
}
如果事件已列在“事件”EventHolder 页面类型下方,则此操作会将用户重定向到页面类型为“页面”的事件不再可用。如果不是来自此 URL,则会显示常规 404 错误页面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)