Здравствуйте. Вопрос про то, как же правильно создавать главную страницу.
Я знаю кучу способов сделать особенную главную страницу, отличную от стандартной. Но при этом всем остается одна проблема, которую я не могу решить. Когда переопределяешь главную страницу, все равно остается страница /node, которая содержит ленту всех материалов, да еще и rss канал. А вот мне не нужно, чтобы эта страница вообще существовала. Что делать? Как убрать системную страницу node? Как сделать, чтобы ее как бы и не существовало вовсе? 404?
Комментарии
А зачем?
По теме - поставьте вьювс, переопределите фронтпейдж (перепишите там адрес страницы) + уберите рсс, если вам не нравится.
Ну хотя бы потому, что мне не хочется иметь на сайте лишних страниц для особо любопытных глаз. Разве я не имею на это право? Кстати, насчет рсс, что вы конкретно имеете в виду?
snezhi, вы понимаете логику работы модулей в Drupal?
Страница /node предоставляется системным модулем /node и просто не может быть убита, без переписывания самого модуля, который входит в состав ядра Drupal.
Но вы можете написать какое-либо хитрой правило к mod_rewrite, которое будет выдавать 404-ю ошибку при получении URL, который заканчивается на /node.
может
hook_menu
определяете точно такой же адрес /node/ с access false например.
есть еще hook_menu_alter, где можно просто убить чужие итемы
угу угу. забыл совсем. с 6 друпала.
Ок, спасибо всем. Действительно помогло написание небольшого модуля вот с такой функцией:
function hook_menu_alter(&$items) {
unset($items['node']);
unset($items['rss.xml']);
}
чтобы получить "страница не найдена", либо вот с такой:
function hook_menu_alter(&$items) {
$items['node']['access callback'] = FALSE;
$items['rss.xml']['access callback'] = FALSE;
}
чтобы получить "доступ запрещен".
Может, я чего и не понял, но не проще ли было главную страницу указать тут?
admin/settings/site-information
Вообще-то речь шла не о том, как переопределить главную, а о том, как удалить страницу под названием "/node".
там написано: Главная страница показывает содержимое, расположенное по этому адресу. Если затрудняетесь, укажите "node".
а если не указывать ничего, в том числе и "node"? чем это грозит?
Тогда надо просто указать ту страницу, которую вы хотите видеть главной. А в Building -> Menu, в ссылках на главную страницу указывать
<front>
Как вариант избавления от site.ru/node.
Допишите в settings.php :
{
if ($path == 'node') { $path = ''; }
}
function custom_url_rewrite_inbound(&$result, $path, $path_language)
{
if ($path == '') { $result = 'node'; }
}
И будет вам счастье.
во, цэ дило!
У меня еще один вопрос по теме. У меня стоит в настройках, что главная frontpage. И нужной странице дан превдоним frontpage. Вроде все замечательно. Но Гугл не любит повторяющихся страниц. В панеле вебмастера гугл пишет, что найдены две одинаковые страницы www.мой сайт/ и www.мой сайт/frontpage.
Я не могу указать псевдоним страницы www.мой сайт/, так как после слеша должно быть что-нибудь. Что с этим делать?
может ламерский вариант, но я во всех типах материалов снял галку по умолчанию публиковать на главной, создал страницу ошибки, и в свойствах публикации указал публиковать на главной. также эту страницу использую как страницу ошибки 403 и 404 в настройках сообщений об ошибках.
просто нужно следить, чтобы не было материалов с этой галочкой (публикация на главной) и будет щастье.