Автор Тема: Код состояния страницы 302  (Прочитано 546 раз)

07 Сентябрь 2014, 03:50:06
  • Фрилансер
  • *
  • Сообщений: 163
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите пожалуйста как изменить код состояния страницы 302 на 200?
07 Сентябрь 2014, 12:15:01
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22318
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Добавить функцию подмены заголовка в FrontController.php и делать проверку перед отдачей страницы.
// For 4.3.0 <= PHP <= 5.4.0
if (!function_exists('http_response_code'))
{
    function http_response_code($newcode = NULL)
    {
        static $code = 200;
        if($newcode !== NULL)
        {
            header('X-PHP-Response-Code: '.$newcode, true, $newcode);
            if(!headers_sent())
                $code = $newcode;
        }       
        return $code;
    }
}
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
07 Сентябрь 2014, 14:17:28
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 163
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добавить функцию подмены заголовка в FrontController.php и делать проверку перед отдачей страницы.
Подскажите пожалуйста по подробней, что собой представляет "проверка перед отдачей страницы"?

07 Сентябрь 2014, 14:38:02
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 14066
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
В методе init() класса FrontControllerCore.
07 Сентябрь 2014, 22:54:47
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 163
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В методе init() класса FrontControllerCore.
То есть в файле FrontControllerCore я должен прописать скрипт проверяющий состояние страницы?
08 Сентябрь 2014, 10:52:50
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1047
  • Репутация: +3/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да, там же есть проверка заголовков header. Также можно добавить и свою проверку.
08 Сентябрь 2014, 12:07:06
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 163
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
После проверки я нашел:
$redirect_type = Configuration::get('PS_CANONICAL_REDIRECT') == 2 ? '301' : '302';
header('HTTP/1.0 '.$redirect_type.' Moved');
header('Cache-Control: no-cache');
Tools::redirectLink($final_url);
Теперь в строке
$redirect_type = Configuration::get('PS_CANONICAL_REDIRECT') == 2 ? '301' : '302';2 нужно исправить на 0 и этим самым выключить редирект? Я правильно мыслю? Подскажите пожалуйста?
08 Сентябрь 2014, 12:13:47
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 1047
  • Репутация: +3/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Попробуйте, ничего же не мешает самому пробывать менять.
08 Сентябрь 2014, 13:18:35
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 14066
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
Неправильно, не нужно исправлять 2 на ноль.
Вы же хотели подменять ответ 302 сервера на 200. Для этого нужно добавлять свою проверку и подмену.
Как пример использовать эту функцию.
08 Сентябрь 2014, 14:31:28
Ответ #9
  • Фрилансер
  • *
  • Сообщений: 163
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если Вам не сложно пропишите пожалуйста код проверки и подмены ответа сервера. У меня что то не получается.  :(
08 Сентябрь 2014, 21:07:51
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 1288
  • Репутация: +34/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Зачем вам его менять?
Поисковики и так хорошо индексируют страницы с 302 редиректом.