diff --git a/controllers/front/PageNotFoundController.php b/controllers/front/PageNotFoundController.php index a2483d4ca..3c4e58561 100644 --- a/controllers/front/PageNotFoundController.php +++ b/controllers/front/PageNotFoundController.php @@ -40,6 +40,20 @@ class PageNotFoundControllerCore extends FrontController if (in_array(Tools::strtolower(substr($_SERVER['REQUEST_URI'], -3)), array('png', 'jpg', 'gif'))) { + if ((bool)Configuration::get('PS_REWRITING_SETTINGS')) + preg_match('¤([0-9]+)(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/(.+)\.(png|jpg|gif)$¤', $_SERVER['REQUEST_URI'], $matches); + if ((!isset($matches[2]) || empty($matches[2])) && !(bool)Configuration::get('PS_REWRITING_SETTINGS')) + preg_match('¤/([0-9]+)(\-[_a-zA-Z]*)\.(png|jpg|gif)$¤', $_SERVER['REQUEST_URI'], $matches); + + if (is_array($matches) && !empty($matches[2]) && Tools::strtolower(substr($matches[2], -8)) != '_default' && is_numeric($matches[1])) + { + $matches[2] = substr($matches[2], 1, Tools::strlen($matches[2])).'_default'; + if (!isset($matches[4])) + $matches[4] = ''; + header('Location: '.$this->context->link->getImageLink($matches[4], $matches[1], $matches[2]), true, 302); + exit; + } + header('Content-Type: image/gif'); readfile(_PS_IMG_DIR_.'404.gif'); exit;