mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-09-30 05:09:07 +02:00
FIX OldPageRedirector no longer loops infinitely if 404 thrown on existing page
This commit is contained in:
parent
ef12e8f42b
commit
eba89b9520
@ -12,13 +12,18 @@ class OldPageRedirector extends Extension {
|
|||||||
public function onBeforeHTTPError404($request) {
|
public function onBeforeHTTPError404($request) {
|
||||||
// We need to get the URL ourselves because $request->allParams() only has a max of 4 params
|
// We need to get the URL ourselves because $request->allParams() only has a max of 4 params
|
||||||
$params = preg_split('|/+|', $request->getURL());
|
$params = preg_split('|/+|', $request->getURL());
|
||||||
|
$cleanURL = trim(Director::makeRelative($request->getURL(false), '/'));
|
||||||
|
|
||||||
$getvars = $request->getVars();
|
$getvars = $request->getVars();
|
||||||
unset($getvars['url']);
|
unset($getvars['url']);
|
||||||
|
|
||||||
$page = self::find_old_page($params);
|
$page = self::find_old_page($params);
|
||||||
|
$cleanPage = trim(Director::makeRelative($page), '/');
|
||||||
|
if (!$cleanPage) {
|
||||||
|
$cleanPage = Director::makeRelative(RootURLController::get_homepage_link());
|
||||||
|
}
|
||||||
|
|
||||||
if ($page) {
|
if ($page && $cleanPage != $cleanURL) {
|
||||||
$res = new SS_HTTPResponse();
|
$res = new SS_HTTPResponse();
|
||||||
$res->redirect(
|
$res->redirect(
|
||||||
Controller::join_links(
|
Controller::join_links(
|
||||||
|
Loading…
Reference in New Issue
Block a user