.htaccess и собственный ErrorDocument для разных типов файлов.

StackOverflow https://stackoverflow.com/questions/2137912

Вопрос

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

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

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

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

Это было полезно?

Решение

В итоге я использовал комбинацию 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

Другие советы

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

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

ErrorDocument 404 /error404.php

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top