Помогите настроить 404 ошибку

C
На сайте с 18.08.2015
Offline
99
1690

Решил сделать сайт с нуля, без движков, и столкнулся с проблемой которая не даёт покоя уже неделю: не могу одновременно настроить 404 ошибку и редиректы. Мы имеем следуйщий код в htaccess:

ErrorDocument 404 /404.php

<IfModule mod_rewrite.c>

RewriteEngine On

#редирект с /index.php на страницу без него

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

RewriteRule ^index\.php$ test-site(точка)ru [R=301,L]

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

#РЕДИРЕКТ НА HTTPS

#RewriteCond %{HTTP:X-HTTPS} !1

#RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^.*/index\.php

RewriteRule ^(.*)index.php$ /$1 [R=301,L]

</IfModule>

Здесь редиректы работают, но при переходе по несуществующему url перекидывает на главную страницу со статусом 200 OK.

Если же мы уберём все редиректы и оставим в файле только одну запись: ErrorDocument 404 /404.php то при вводе несуществующего url будет выдаваться нужная страница с 404 ошибкой.

Пробовал менять местами строчку ErrorDocument 404 /404.php, то вниз то вверх то посередине файла, всё без толку

E
На сайте с 22.06.2016
Offline
45
#1

Конструкцию-то, видимо, от "движков" позаимствовали. Вот и обработку ошибки так же делайте, т.е. забудьте про ErrorDocument.

C
На сайте с 18.08.2015
Offline
99
#2
egos:
Конструкцию-то, видимо, от "движков" позаимствовали. Вот и обработку ошибки так же делайте, т.е. забудьте про ErrorDocument.

Уже неактуально, подключил фрилансера и всё настроили. Но деректива ErrorDocument осталась на месте

S
На сайте с 30.09.2016
Offline
469
#3

Эта директива и должна быть на месте.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий