Jump to content

[SOLVED] 404 after logoff


Recommended Posts

i used this script by SIBLIBUSRO

 

you should edit the
pagenotfoundcontroller.php
in controller folder

open your controller folder
and edit
pagenotfoundcontroller.php

just copy and paste into pagenotfoundcontroller.php
and change the http://tegalgubug.net to your homepage


<?php
/*
* 2007-2013 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.or...ses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <[email protected]>
* @copyright 2007-2013 PrestaShop SA
* @license http://opensource.or...ses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/

class PageNotFoundControllerCore extends FrontController
{ /*ini sudah diganti */
public $php_self = '404';
public $page_name = 'pagenotfound';

/**
* Assign template vars related to page content
* @see FrontController::initContent()
*/
public function initContent()
{
/*here you should change your homepage */
header("Location: http://tegalgubug.net/");

if (in_array(Tools::strtolower(substr($_SERVER['REQUEST_URI'], -3)), array('png', 'jpg', 'gif')))
{
header('Content-Type: image/gif');
readfile(_PS_IMG_DIR_.'404.gif');
exit;
}
elseif (in_array(Tools::strtolower(substr($_SERVER['REQUEST_URI'], -3)), array('.js', 'css')))
exit;

parent::initContent();

$this->setTemplate(_PS_THEME_DIR_.'404.tpl');
}

public function canonicalRedirection($canonical_url = '')
{
// 404 - no need to redirect to the canonical url
}
}

Link to comment
Share on other sites

A better solution (to only go home with the mylogout error, not with others that you must to take into account) is to override the PageNotFoundController (file /override/controllers/front/PageNotFoundController.php):

class PageNotFoundController extends PageNotFoundControllerCore
{
  public function initContent()
  {
    //$_SERVER['REQUEST_URI']
    //$_SERVER['HTTPS']
    //$_SERVER['SERVER_NAME'])

    $_mylogout = (strpos($_SERVER['REQUEST_URI'], 'index.php?controller=') !== false);

    if ($_mylogout)
    header("Location: http://" . $_SERVER['SERVER_NAME']);
    else
    {
      header('HTTP/1.1 404 Not Found');
      header('Status: 404 Not Found');

      if (in_array(Tools::strtolower(substr($_SERVER['REQUEST_URI'], -3)), array('png', 'jpg', 'gif')))
      {
        header('Content-Type: image/gif');
        readfile(_PS_IMG_DIR_.'404.gif');
        exit;
      }
      elseif (in_array(Tools::strtolower(substr($_SERVER['REQUEST_URI'], -3)), array('.js', 'css')))
        exit;

      parent::initContent();

      $this->setTemplate(_PS_THEME_DIR_.'404.tpl');
    }
  }
}

This is not a real solution. 

Link to comment
Share on other sites

  • 2 weeks later...

A better solution (to only go home with the mylogout error, not with others that you must to take into account) is to override the PageNotFoundController (file /override/controllers/front/PageNotFoundController.php):

class PageNotFoundController extends PageNotFoundControllerCore
{
  public function initContent()
  {
    //$_SERVER['REQUEST_URI']
    //$_SERVER['HTTPS']
    //$_SERVER['SERVER_NAME'])

    $_mylogout = (strpos($_SERVER['REQUEST_URI'], 'index.php?controller=') !== false);

    if ($_mylogout)
    header("Location: http://" . $_SERVER['SERVER_NAME']);
    else
    {
      header('HTTP/1.1 404 Not Found');
      header('Status: 404 Not Found');

      if (in_array(Tools::strtolower(substr($_SERVER['REQUEST_URI'], -3)), array('png', 'jpg', 'gif')))
      {
        header('Content-Type: image/gif');
        readfile(_PS_IMG_DIR_.'404.gif');
        exit;
      }
      elseif (in_array(Tools::strtolower(substr($_SERVER['REQUEST_URI'], -3)), array('.js', 'css')))
        exit;

      parent::initContent();

      $this->setTemplate(_PS_THEME_DIR_.'404.tpl');
    }
  }
}

This is not a real solution. 

 

 

Hello all, please use this Github solution and let me know if it works. 

 

-https://github.com/P...63b73c13eab5f2e

 

Always remember to have a complete back up! 

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...