Не так давно Тостер подсказал мне очень крутую тему с роутингом и php, большое спасибо:3
И вот, когда я почти переписал свой "движок", у меня встал вопрос насчет 404 редиректа.
Попытался я сделать так:
Сначала, если урл не подходит ни под какие правила, роутер думает, что это статья(потому что статья может лежать где угодно).
else {
$this -> set('ContentManager', new ArticleManager($address, $this['database']));
$route_to = 'article';
}
Сама статья сверяет свой урл с базой данных, если там ничего не находит, перекидывает на страницу с 404.
if (count($this -> mysql_content) == 0) {
header( "Location: /error404.php", true, 404 );
exit();
}
Когда моя страница начала перекидываться на 404, я сначала обрадовался. "Только прописать в .htaccess, и готово!".
ErrorDocument 404 http://klimatdomu.ru/error404.php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.klimatdomu.ru$ [NC]
RewriteRule ^(.*)$ http://klimatdomu.ru/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
Но почему-то эта штука не работает, сайт все также висит на 404
Буду признателен, если кто-нибудь укажет, где я ошибся, и как можно реализовать это? Страница с 404 - error404.php
Заранее спасибо.