Приветствую Уважаемое сообщество.
Тема поднималась не один раз, но чего то однозначного найти не удалось, несмотря на то, что данная проблема данный недочет drupal давно известен.
- Содержимое страниц с адресами site.com и site.com/node абсолютно одинаковое
- При использовании алиасов путей, все узлы остаются доступными по адресу node/nid, а хотелось бы видеть 404(что вполне логично)
- В дополнение ко всему — /admin и /user... Что делать непонятно... Если к примеру есть два шаблона(один для админки, второй для сайта), то если не авторизовавшись набрать адрес /admin, то будет 404, но в теле шаблона админки, а не шаблона сайта, как хотелось бы...
По сути все сводится к двум основным моментам:
— нужно показывать 404 в случае, если в пути есть «node».
— по поводу /admin и /user трудно сказать...
Подскажите пожалуйста, кто сталкивался с решением данных задач и каким образом победил...?
Комментарии
Кто говорит что это недочёт?
И кто вам сказал что содержимое ?q=node и главной одинаковое? Кто-то запрещает на главную прицепить другую страницу
а разве это нормально, когда есть две страницы с полностью одинаковым содержимым...?
Если у Вас не одинаковое, поделитесь, каким образом Вы этого добились?
В настройках поменяй главную и будет тебе разное Поставь модуль глобал редирект, он тебе перенаправит куда надо без плохих 404.
Path и PathAuto уже пробовали?
Модули пробовал(использую Path и PathAuto), но как они могут помочь в данной ситуации...? При создании алиасов системные пути работают.
Или речь идет о глобал редирект?
.htaccess и mod_rewrite в руки.
в .htaccess пишем правило:
RewriteCond %{REQUEST_URI} ^/node.*$
RewriteRule ^(.*)$ http://mysite.com/404.php [R=301,L]
И пожалуйста - везде где будет /node вначале URI будет переход на страницу 404.php
При этом если материал создан с использованием скажем URL aliases, по alias'у он по прежнему доступен
глобал редирект - переправит с путей node/nid на vashurl, если последний был сделан через пазауто, кроме того во пазауто встроен модуль паз редирект, который переправляет со старых алиасов на новые.
Так что, пож-ста, перечеркните слово
недочетСпасибо, но необходимо делать не редирект, а показывать — 404 страницу.
Кстати, а почему 404 считаются плохими?
А зачем 404???
Представьте - вы сделали один алиас, потом что-то там намудрили (со мной это случается регулярно ;)) и у вашей статьи теперь другой алиас. Но все ссылки-то ведут на первый!!!
Если неправильный алиас будет вести на 404, то никто ничего не найдет: ни поисковики, ни пользователи. если будет редирект 301 - то и поисковики запомнят новый адрес, а люди вообще ничего не заметят!
И кстати - поставьте вы глобал редирект и сами посмотрите!!! Там в настройках есть - редирект на 404 и вообще любую из ошибок...
Что-то не найду я никак таких настроек. Это про глобал редирект?
что-то совсем плохо стало на ресурсе, скоро вообще одни блондинки что-ли останутся?
1. admin/settings/site-information - здесь ставится, какая страница главная.
2. Не вижу никакой логики, реально идёт обращение к node/[nid], а алиас - для красоты. Не вижу, в чем минусы. Это основа архитектуры друпала - обращение по номеру к каждой ноде.
3. для /user проблема не понятна - с ним-то что не так? А с admin тут вопрос философии: для систем с отдельной админкой( Битрикс, Неткат) набирая /admin никто же не ожидает, что останется дизайн front-end'а. Здесь фактически делается отдельный вид админки - поэтому при /admin и выдается админка, 403 страница и форма входа.
jason32, главное не превратиться в ДЛЕ или Жумлу
Боже избавь от этого...
Если главная будет другой, то по /node всё равно будет доступно сообщение типа: Добро пожаловать на ваш новый сайт на Drupal! и т.д.
Т.е. надо вообще убрать этот путь из доступных - чтобы его не существовало. Это ж где-то в ядре?
globalredirect проще поставить
Знаю, что уже поздно, но тем не менее... может кто сейчас бьётся с этим вопросом, то у него будет шанс найти таки здесь ответ)
Сам недавно задался таким вопросом, тоже рыскал за ответом на здешнем ресурсе, но похоже здешнее сообщество не любит новичков и никак им не стремиться помочь отвечая на всякие дуратские вопросы
Значит на эти вопросы по мере сил и знаний буду отвечать я!))) Теперь о проблеме. Чтобы "закрыть админку" нужно просто сделать тему для администрирования такую-же как и основная тема сайта т.е. здесь /admin/settings/admin выбираем "стандартно" (обычно если вы сюда не лазили, то и должно всё работать "из коробки") и после этого при обращении по пути - "доменное имя сайта"/admin вы увидите долгожданную надпись, что доступ запрещён Если делать разные темы для сайта и "админки", тогда нужно что-то мудрить либо с редиректом, либо с реврайтом, но это уже в настройках web-сервера.
Теперь к вопросу как закрыть /user, /node, да очень просто) Тут нам на помощь приходит модуль pathauto настройки которого позволяют запутать любого посетителя сайта, настраиваете шаблон автозамены и всё будет шито-крыто
Удачи всем в друпалом!
<?php //\modules\user\user.module:1810
//-- ------
// user2login - новый урл со страницой логина
$items['user2login'] = array(
'title' => 'User account',
'title callback' => 'user_menu_title',
'page callback' => 'user_page',
'access callback' => TRUE,
'file' => 'user.pages.inc',
'weight' => -10,
'menu_name' => 'user-menu',
);
// И если вам надо закрыть страницу
$items['user']['access callback'] = FALSE;
$items['user2login/register'] = array(
'title' => 'Create new account',
'page callback' => 'drupal_get_form',
'page arguments' => array('user_register_form'),
'access callback' => 'user_register_access',
'type' => MENU_LOCAL_TASK,
);
$items['user/register']['access callback'] = FALSE;
//-- ------
?>