Ответить Новая тема Новый опрос 
 404.php
CGIStandart
Новичок
Сообщений: 64
Регистрация: 04-07-2010


22-10-2010 16:51
Привет! Есть в престе страица 404.php - как сделать так чтобы она отдавала заголовок 404, понятный роботам что страницы нет? А то поисковики сейчас ломятся по несуществующим урлам от старого домена...

Сейчас на ней почемуто отдаётся код 200


Сообщение отредактировано CGIStandart 22-10-2010 12:54 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
CGIStandart
Новичок
Сообщений: 64
Регистрация: 04-07-2010


22-10-2010 16:59
http://prestadev.ru/forum/print-11-1082.html

Извиняюсь за срач, но нашёл не через поиск на форуме, а через гугл =)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
CGIStandart
Новичок
Сообщений: 64
Регистрация: 04-07-2010


27-10-2010 15:00
Итак:
Ors предлагает использовать строку header("Status: 404 Not Found");

Что же это такое? Это soft 404, когда статус заголовка страницы становится 404, но код остаётся 200, как будто страница существует. Оказалось что данную штуку не любят Яндекс и Google. Они любят жёсткий 404, в котором и статус заголовка и код 404.

Как сделать жёсткий 404? Элементарно.
Вставляем после строки include(dirname(__FILE__).'/header.php'); следующее:

/*fix*/
header("HTTP/1.0 404 Not Found");
/*fix*/


Как вы видите меняется только часть фразы в кавычках.

Теперь можно проверить отдёт ли страница код 404. Для этого воспользуйтесь любым сервисом "прочитать заголовок ответа сервера" или около того. Я пользуюсь плагином для фаерфокса dev toolbar (очень удобная штука, рекомендую), там есть функция чтения заголовка.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


27-10-2010 15:07
В новой версии оба заголовка используются http://svn.prestashop.com/trunk/404.php
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
CGIStandart
Новичок
Сообщений: 64
Регистрация: 04-07-2010


27-10-2010 18:23
Да, видимо это оптимальное решение =)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
bazatin
Новичок
Сообщений: 41
Регистрация: 31-10-2009


11-10-2011 08:22
Хотел уточнить. У меня при вводе неверной страницы (например, http://www.masterbita.ru/fdyrdytdtdt) выдает:

[Debug] This page has moved
Please use the following URL instead: http://www.masterbita.ru/404

А как сделать, чтобы все же сразу перекидывало несуществующие страницы на 404 страницу?

Перепробовал советы, которые дали выше. Не помогает. Помогите, пожалуйста.

Вот что в файле 404.php:
Код:
<?php
/*
* 2007-2011 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.org/licenses/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 license@prestashop.com 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 <contact@prestashop.com>
*  @copyright  2007-2011 PrestaShop SA
*  @version  Release: $Revision: 6594 $
*  @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/

/* Send the proper status code in HTTP headers */
header('HTTP/1.1 404 Not Found');
header('Status: 404 Not Found');




if (in_array(substr($_SERVER['REQUEST_URI'], -3), array('png', 'jpg', 'gif')))
{
    require_once(dirname(__FILE__).'/config/settings.inc.php');
    header('Location: '.__PS_BASE_URI__.'img/404.gif');
    exit;
}
elseif (in_array(substr($_SERVER['REQUEST_URI'], -3), array('.js', 'css')))
    die('');

require_once(dirname(__FILE__).'/config/config.inc.php');
ControllerFactory::getController('PageNotFoundController')->run();

 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
bazatin
Новичок
Сообщений: 41
Регистрация: 31-10-2009


17-10-2011 13:47
Никто не поможет?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


17-10-2011 13:58
Цитата:( bazatin @ 11-10-2011 09:22 Смотреть сообщение )
[Debug] This page has moved


http://prestadev.ru/forum/tema-3873-10.html#pid21650

Пользуйтесь поиском.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
bazatin
Новичок
Сообщений: 41
Регистрация: 31-10-2009


18-10-2011 03:17
Поверьте, Алекс. Не один час искал ответ на свой вопрос. Спасибо за ответ.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос