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

Форум Apache

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

 

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

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

тема: Разные 404 для разных типов файлов
 
 автор: Sfinks   (10.01.2012 в 11:08)   письмо автору
 
 

Такое возможно?
Т.е. чтоб если не найдена страница, то выдавалась бы страница _404, а если картинка, например JPG, то 404.jpg
Смысл в том, чтоб на HTML странице, если картинка указанная в <img> не найдена, то отображалась бы не порванная иконка на усмотрение браузера, а определенный мною файл.
Сейчас у меня сделано через mod_rewrite и пхп. Т.е. mod_rewrite перекидывает все JPG на пхп файл, в котором:
<?php
  
if(file_exists(".".$_SERVER["REQUEST_URI"])){
    
header("Content-type: image/jpeg");
    exit(
file_get_contents(".".$_SERVER["REQUEST_URI"]));
  }
  else{
    
header("HTTP/1.1 404 Image Not Found");
    
header("Content-type: image/jpeg");
    exit(
file_get_contents("./img/_404.jpg"));
  }
?>
И снова ХОЧЕТСЯ СКОРОСТИ =)) Нужно исключить ПХП.

  Ответить  
 
 автор: cheops   (10.01.2012 в 14:43)   письмо автору
 
   для: Sfinks   (10.01.2012 в 11:08)
 

>Сейчас у меня сделано через mod_rewrite и пхп. Т.е. mod_rewrite перекидывает все JPG на пхп
>файл, в котором:
А как сделано? Нельзя там разбить правило на два, одно бы заканчивалось на JPG и пересылало н jpg, а второе бы обрабатывало все остальное?

  Ответить  
 
 автор: Sfinks   (10.01.2012 в 16:00)   письмо автору
 
   для: cheops   (10.01.2012 в 14:43)
 

Непонял как че разбить.....
Сейчас так:
RewriteCond %{REQUEST_URI} !(\.php|\.ico|\.html|\.txt|\.gz|\.png|\.gif|\.js)$ [NC]
RewriteRule ^.*$ redir.php [L]

А в redir.php уже идет разбор всех ЧПУ и jpg

  Ответить  
 
 автор: cheops   (10.01.2012 в 16:21)   письмо автору
 
   для: Sfinks   (10.01.2012 в 16:00)
 

А вы вот так попробуйте
RewriteCond %{REQUEST_URI} !(\.php|\.ico|\.html|\.txt|\.gz|\.png|\.gif|\.js)$ [NC] 
RewriteRule ^.*(.jpg)$ redir.jpg [L]
RewriteCond %{REQUEST_URI} !(\.php|\.ico|\.html|\.txt|\.gz|\.png|\.gif|\.js)$ [NC] 
RewriteRule ^.*$ redir.php [L]

  Ответить  
 
 автор: Sfinks   (10.01.2012 в 16:36)   письмо автору
 
   для: cheops   (10.01.2012 в 16:21)
 

Допустим... И что это даст? Я сути не улавливаю. redir.jpg это что?
_____
На самом деле подсказку я увидел в соседней теме.... Ща пытаюсь разобраться.

  Ответить  
 
 автор: cheops   (10.01.2012 в 16:44)   письмо автору
 
   для: Sfinks   (10.01.2012 в 16:36)
 

Вместо redir.jpg, конечно же имеется в виду /img/_404.jpg. Т.е. первым правилом изловим картинки и выдадим _404.jpg, а если это не картинка, то будет срабатывать второе правило, которое перебросит пользователя на redir.php.

  Ответить  
 
 автор: Sfinks   (10.01.2012 в 17:27)   письмо автору
 
   для: cheops   (10.01.2012 в 16:44)
 

Да не... Нужно чтоб если картинка, то картинка выдавалась, а если запрошеной картинки нет, то 404.jpg. В вашем варианте вместо любой картинки будет 404.jpg выдаваться. Вернее в вашем варианте mod_rewrite на любом jpg зациклится, но это не важно. Тут суть не правильная.

  Ответить  
 
 автор: Sfinks   (10.01.2012 в 17:41)   письмо автору
 
   для: Sfinks   (10.01.2012 в 11:08)
 

Отвечаю.
RewriteCond %{REQUEST_URI} (\.jpg)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.jpg$ /img/_404.jpg [L]

Как-то так =)))

  Ответить  
 
 автор: Sfinks   (10.01.2012 в 17:46)   письмо автору
 
   для: Sfinks   (10.01.2012 в 11:08)
 

Даже вот так:
RewriteCond %{REQUEST_URI} (\.gif|\.png|\.jpe?g)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(gif|png|jpe?g)$ /img/_404.$1 [L]

  Ответить  
Rambler's Top100
вверх

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