Необходимо, средствами mod_rewrite, выдавать стандартную 404 ошибку на запрос типа http://example.ru/node/"любое число". Например: http://example.ru/node/2547 -> 404 Not Found... Никак не получается составить правило в .htaccess. Прошу помощи.
на вскидку . - [R=404] реврайт не умеет отвечать кодами, но умеет перенаправить к документу, который залупит браузеру правильный код. кстати, если у вас раньше были ресурсы по данной схеме, а теперь нет и не будет - не 404 Not Found надо, а 410 Gone
прописываю это дело в .htaccess. Реальных папок node/ нету, может через RewriteCond %{REQUEST_URI}? Или я что-то не понимаю.
так, сначала давайте =) глобально на сервере/хосте опции не ниже FileInfo так же как минимум RewriteEngine On помещаем .htaccess (на всякий случай такого вида) Код (Text): RewriteEngine On RewriteBase / RewriteRule ^node/ - [R=410] теперь пробуем обратиться к любому адресу правлее /node/ или к нему самому - должны увидеть 410 Gone ошибку
Вот с 410 работает, а с 404 нет. Почему так? Сразу поясню, что пути типа /node/... это реальные адреса, формируемые CMS Drupal, а использовать собираюсь синонимы. Соответственно по всем node/ необходимо возвращать 404, чтобы избежать дублей.
Нужно именно 404, что подтверждает - такой страницы на сервере никогда не было, в отличие от 410-ой - страница была, но сейчас нету.
вы меня удивляете =) замените 410 на 404, создайте папку node и в ней пару ресурсов - будете постоянно видеть 404. реврайт работает как надо))) а 410 или 404 это да, от задачи зависит
Как всегда, проблема была простой: в .htaccess нужно было закомментировать строку Код (Text): ErrorDocument 404 /index.php