|
|
|
| есть .htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ public/index.php?query=$1 [NC,L]
ErrorDocument 404 /404.html
|
в корне сайта лежит нормальный 404.html (к нему можно получить доступ по www.site.loc/404.html)
если в урле набрать например www.site.loc/bla_bla то сработает ошибка 404 но страница будет пустой.
Пытался разобраться и пришел к возможно ошибочному мнению.
- ввожу в урл www.site.loc/bla_bla
- в .htaccess срабатывает правило public/index.php?query=$1
- грубо говоря в public/index.php попытка найти модуль отображение
- ничего не находит и генерит header(404)
- в браузер выводит пустую страницу со статусом 404 (но я планировал что на этом этапе апачь поймает 404 и выведет 404.html)
И того вопрос
- Что я сделал не так.
- И как сделать нормально, что бы и роутер срабатывал и 404 ошибка отображалась.
З.Ы. Вариант заменить в php header(404) на вывод сразу текста с 404.html не подходит, так как это очень сильно противоречит корпоративному-фреймворку | |
|
|
|
|
|
|
|
для: duhon
(29.10.2012 в 21:41)
| | А список форматов допустимых урлов сильно большой? Если нельзя редактировать пых, то нужно обобщенное
RewriteRule ^(.*)$ public/index.php?query=$1 [NC,L]
| заменить на набор более узких правил, типа
RewriteRule ^((docs|news|admin).*)$ public/index.php?query=$1 [NC,L]
| наверняка все возможные допустимые урл можно подогнать под несколько шаблонов. | |
|
|
|