Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как в моей ситуации обработать 404 ошибку?
 
 автор: simbel   (13.10.2007 в 18:14)   письмо автору
 
 

У меня такая ситуация. Написал скрипт для обработки ЧПУ - все урлы формируются через одну страницу. Если по какому-либо запросу страница не найдена (т.е. в БД не найдено одной из составляющих ЧПУ) автоматически включается файл страницы 404 ошибки. Но в браузер при этом не отдаётся код 404 ошибки, урл в адресной строке не меняется (так и задумано). Поисковики индексируют эту 404 страницу.

Можно как-то сделать так, чтобы в браузер отдавался код ошибки, но загружалась моя страница 404 ошибки, не используя редирект и чтобы поисковики не индексировали 404 страницу?

У меняесть есть такая идея. В htaccess прописать директиву ErrorDocument 404 /error/index.php. В скрипте вместо включения файла 404 страницы, нужно чтобы серверу отдавался код 404 ошибки и сервер бы реагировал на эту ситуацию согласно правилу в htaccess. При этом в адресной строке оставался бы запрашиваемый адрес, а отдавалась бы 404 страница.

Такое реально сделать? Или это из область фантастики? :) Можно указать серверу как он должен реагировать на не найденную страницу из скрипта? Что можно ещё в моей ситуации сделать?

Кстати, описанный выше способ работает, через редирект (вместо включения файла), но при этом в адресной строке меняется и урл. А редирект для поисковиков по-моему не есть хорошо....

   
 
 автор: ZeeG   (13.10.2007 в 18:49)   письмо автору
 
   для: simbel   (13.10.2007 в 18:14)
 

код покажите

   
 
 автор: simbel   (13.10.2007 в 20:57)   письмо автору
 
   для: ZeeG   (13.10.2007 в 18:49)
 

Вот часть кода. В htaccess просто описано правило которое перенаправляет все запрсы на страницу с этим кодом и некоторые ислючения.


<?php
   $url 
$_SERVER['REQUEST_URI'];
   
$uriel array_values(array_filter(explode('/'$url)));
   require_once (
''.$_SERVER['DOCUMENT_ROOT'].'/config.php');
   if(
count($uriel) == 0)
      require(
'ken/index.php');
   elseif(
count($uriel) == 1)
   {
      
$cag=$uriel[0];
      
$poisk mysql_query('SELECT CID, Burl, Plas FROM CATEGORIES WHERE Burl="'.$cag.'"');
      if(!
$poisk)
         exit (
mysql_errno() . ': ' mysql_error() . '<br>');
      
$ca = @mysql_result($poisk01);
      
$plas = @mysql_result($poisk02);

      if(
$ca==$uriel[0] && ($plas=='m' || $plas=='t'))
      {
         
$_GET['ca']=mysql_result($poisk,0);
         require(
'ken/index.php');
      }
      elseif(
$ca==$uriel[0] && $plas=='b')
      {
         
$_GET['ca']=mysql_result($poisk,0);
         require(
'ken/ods.php');
      }
      else
      {
          require(
'ken/404.php');
          exit();
      } 
   }
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования