Необходимо в .htaccess, средствами mod_rewrite, составить правило, которое бы выдавало стандартную 404 ошибку на запрос типа
http://example.ru/node/"некое число".
Например:
http://example.ru/node/372 -> 404 Not Found...
Никак не получается решить задачу. Прошу помощи.
RewriteRule ^(.*)/node/\d+$ /404.php [NC,L]
коротко и ясно ) и что никаких ошибок, сообщений не показывается когда в браузере перейти по ссылке
http://example.ru/node/372
Дело в том, что у адресов типа node/... существуют синонимы. Обращение должно быть только по синониму. Соответственно на все эти node адреса нужно выдавать 404 ошибку. В реальности, папки node/ не существует, система - CMS Drupal, генерит страницы налету. Там все является узлом - node, а страницы идентифицируются уникальным ID в виде числа: node/1, node/2... Страницы типа 404.php тоже нет. На ваш код система никак не реагирует, просто выдает одну и ту же страницу хоть по /node/123, хоть по ее синониму, скажем /page123. Вот такое правило:
RewriteEngine On
RewriteBase /
RewriteRule ^node/ - [R=410]
работает как и надо, но только по 410 ошибке, а нужно именно 404.
Проблема решилась банальным комментированием строки в .htaccess
ErrorDocument 404 /index.php
и после этого правило:
RewriteBase /
RewriteRule ^node - [R=404,L]
стало работать