[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mod_rewrite: возвращать 404 ошибку на запрос
XDm
Необходимо в .htaccess, средствами mod_rewrite, составить правило, которое бы выдавало стандартную 404 ошибку на запрос типа http://example.ru/node/"некое число".
Например:
http://example.ru/node/372 -> 404 Not Found...
Никак не получается решить задачу. Прошу помощи.
OleKh
RewriteRule ^(.*)/node/\d+$ /404.php [NC,L]
XDm
Не помогло
OleKh
коротко и ясно ) и что никаких ошибок, сообщений не показывается когда в браузере перейти по ссылке http://example.ru/node/372
XDm
Дело в том, что у адресов типа 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.
XDm
Проблема решилась банальным комментированием строки в .htaccess
ErrorDocument 404 /index.php

и после этого правило:
RewriteBase /
RewriteRule ^node - [R=404,L]

стало работать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.