Редирект с несуществующей страницы на 404

С8
На сайте с 23.08.2012
Offline
108
1394

Здравствуйте! Есть строчка в htaccess -

RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]
она редиректит с несуществующей страницы вида https://site.ru/blablabla на главную. Мне нужно, чтобы перекидывало на страницу ошибки 404. Пробовала сделать так
RewriteRule ^([^.]+)/?$ 404.php?do=cat&category=$1 [L]
- с несуществующей перекидывает на 404, но и категории, которые существуют, перестают отображаться и тоже отдают 404. Сами статьи работают нормально. Подскажите, пжл, код, чтобы и категории показывались, и несуществующие страницы вида https://site.ru/category/blablabla и https://site.ru/blablabla редиректили на страницу 404. Спасибо.
rustelekom
На сайте с 20.04.2005
Offline
544
#1

Добавить ещё условие и правило:

RewriteCond %{REQUEST_URI} ^/404/$

RewriteRule ^(.*)$ /404.php [L]

60% скидка на VPS в США, 20% скидка в Нидерландах и 40% в Финляндии. Новые тарифы на AMD Ryzen 9950x с частотой до 5.7 ГГц со скидкой 40% RoboVPS https://www.robovps.biz
С8
На сайте с 23.08.2012
Offline
108
#2
Добавить ещё условие и правило:

RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ /404.php [L]

Спасибо, пробовала, добавила сразу после RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L] , но почему-то не срабатывает.... Отображается просто пустая страница, которая отдает код 200.

dma84
На сайте с 21.04.2009
Offline
168
#3

404 нужно скриптом отдавать, а не через .htaccess

rustelekom
На сайте с 20.04.2005
Offline
544
#4

Пардон, не вчитался. Надо закомментировать тогда RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L], а то выходит, что условия противоречат друг другу.

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