@SET1

Как через htaccess перекидывать все запросы на index.php, кроме 404?

Мне надо чтобы все запросы перекдывались на index.php, а в случае ответа сервер 404 - на 404.html.

Пытался так:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/templates/
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteCond %{REQUEST_URI} !^/panel/
RewriteCond %{REQUEST_URI} !^/ajax/

ErrorDocument 404 /404.html

RewriteRule ^((?!index\.php).+)$ /index.php [L]


Но при ответе сервера кодом 404, ничего не происходит.
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
aleksejjjj
@aleksejjjj
Бессмысленно. Суть подобных конфигов - все не найденные файлы отправлять на index.php. А он уже возвращает красивую 404.
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы