.htaccess и пользовательский ErrorDocument для разных типов файлов - PullRequest
1 голос
/ 26 января 2010

Мне интересно, можно ли использовать mod rewrite вместе с замедлением ErrorDocument для настройки страниц ошибок в зависимости от типа запрашиваемого файла.

Например, существует несуществующий html или php файлзапрашиваемый Apache выдаст отличную пользовательскую HTML-страницу.

Но если запрашивается несуществующий файл изображения, js, css и т. д., то Apache выдаст основной html-файл со ссылкой только на него.

Хорошим примером такого поведения является Facebook.Попробуйте запросить фиктивный файл JavaScript, вы получите другую страницу, чем если бы вы запросили несуществующий файл php.

Ответы [ 3 ]

2 голосов
/ 26 января 2010

Завершено с использованием комбинации ErrorDocument и RewriteRules, это работает, потому что страница php выдает 404 Not Found для меня.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*(?<!.js|.css|.ico|.txt|.bmp|.gif|.png|.jpeg|.jpg)$ /error/404.php [L]

ErrorDocument 404 /404_basic.html
0 голосов
/ 26 января 2010

Вы можете использовать скрипт PHP для своей страницы 404:

ErrorDocument 404 /error404.php

Там вы можете проанализировать путь URL с помощью PHP (см. $_SERVER['REQUEST_URI']) и определить, какой тип ресурса был запрошен или ожидается.

0 голосов
/ 26 января 2010

Используйте RewriteCond !-f вместе с перезаписью на нужную страницу вывода и флагом R=404.

...