Это ошибка "страница не найдена", а не ошибка "отказано в доступе".
kiamlaluno
Ответы:
4
Другое решение здесь - модуль LoginToboggan . Он предоставляет ряд различных улучшений для входа в систему.
Модуль logintoboggan предлагает несколько модификаций системы входа в систему drupal во внешнем модуле, предлагая следующие функции и улучшения удобства использования:
разрешить пользователям входить в систему, используя свое имя пользователя или адрес электронной почты.
разрешить пользователям войти в систему немедленно.
предоставить форму входа на страницах, на которых отказано в доступе для не вошедших (анонимных) пользователей.
модуль предоставляет две опции блока входа в систему: один использует javascript для отображения формы внутри блока сразу после нажатия кнопки «войти». другой переносит пользователя на отдельную страницу, но возвращает пользователя к его исходной странице при входе в систему.
настроить форму регистрации с двумя полями электронной почты для обеспечения точности.
при желании перенаправить пользователя на определенную страницу при использовании функции «немедленного входа».
При желании перенаправить пользователя на определенную страницу после проверки его адреса электронной почты.
при желании отобразить сообщение пользователя, указывающее на успешный вход в систему.
При желании можно объединить форму входа и регистрации на одной странице.
по желанию, пользователи, не прошедшие проверку, будут очищены из системы через заданный интервал времени (пожалуйста, прочтите раздел caveats файла install.txt для получения важной информации о настройке этой функции!).
интегрируется с модулем правил для выполнения различных задач, когда пользователь проверяет по электронной почте в процессе проверки (например, см.
http://drupal.org/node/880904 )
Форма конфигурации параметров имеет опцию « Присутствовать при входе в систему при отказе в доступе» (403), которая включает / отключает эту функцию.
Модуль LoginToboggan работал как шарм, должен был включать страницу 403, но это было супер, спасибо.
jelly46
10
Вариант 1. Используйте модуль CustomError
Модуль CustomError позволяет администратору сайта создавать пользовательские страницы ошибок для кодов состояния HTTP 403 (доступ запрещен) и 404 (не найден) без необходимости создавать узлы для каждого из них. Еще несколько подробностей о его функциях (со страницы проекта):
Настраиваемый заголовок страницы и описания.
Нет заголовков автора и даты / времени, как с обычными узлами.
В текст страницы можно поместить любой текст в формате HTML.
Страницы с ошибками являются тематическими.
Пользователи, которые не вошли в систему и не пытаются получить доступ к области, требующей входа в систему, будут перенаправлены на страницу, к которой они пытались получить доступ после входа в систему.
Позволяет пользовательские перенаправления для 404 с.
Вы должны быть заинтересованы в части « Пользователи, которые не вошли в систему и пытаются получить доступ к области, требующей входа в систему, будут перенаправлены на страницу, к которой они пытались получить доступ после входа в систему ».
Вариант 2. Перенаправление на пользователя / логин с помощью модуля «Правила»
«Добавление настроек для страницы« Отказано в доступе »и отображение блока« Вход пользователя в систему »на этой странице» - действительно решение, которое должно работать. Тем не менее, вы можете сделать еще один шаг вперед и улучшить пользовательский опыт AbitMORE. С помощью варианта подхода, описанного в ответе на вопрос « Как перенаправить анонимных пользователей на страницу входа с помощью модуля « Правила »? ».
Для этого предположим, что путь к странице «Default 403» установлен как «no_access» (через /admin/config/system/site-informationнижнюю часть этой страницы администратора). Затем создайте правило с помощью модуля « Правила », используя в качестве события что-то вроде «После посещения узла no_access». Чтобы все правило выглядело примерно так:
События: после посещения узла no_access
условия:
У пользователя есть роль (и) -Parameter: User: [site:current-user], Roles: anonymous user
НЕ Сравнение текста -Parameter: Text: [site:current-page:url], Matching text: user/login
Если вы захотите сделать это, вы можете даже добавить другое действие, чтобы также отображать некоторые (информационные) сообщения в области сообщений Drupal, например, «Вы пытались посетить страницу, для которой требуется вход в систему ...».
Правда, для этого может потребоваться включить дополнительный модуль ( Правила ). Но, как показывает его растущая популярность, этот модуль, вероятно, уже включен практически на любом сайте (аналогично модулю Views ), потому что для этого модуля существуют десятки вариантов использования. Только 1 вариант этого вопроса: как насчет улучшения пользовательского опыта для «Страница не найдена» подобным образом?
Вариант 3: Показать блок входа пользователя на выделенной странице
Другой вариант, в качестве альтернативы правилам «Действие» (для перенаправления user/login), заключается в создании некоторого назначенного узла, скажем, с путем, подобным «my_login_page_with_login_block». А затем объедините это с настройкой блока «Вход пользователя» (через admin/structure/block) следующим образом:
Отобразите этот блок в любой области темы по вашему выбору.
Используйте configureссылку «» справа от этого блока входа пользователя, чтобы установить « Настройки видимости » для « Страниц ». Т.е. измените параметр « Показать блок на определенных страницах » на « Только перечисленные страницы » и укажите путь ( my_login_page_with_login_block) в текстовом поле под ним. Если по какой-то причине вы не хотите использовать путь, просто укажите вместо него узел / nid (nid = id узла).
Привет, Пьер, это большая помощь, я попробую это и дам тебе знать, как у меня дела. Спасибо
jelly46
1
Спасибо за отзыв ... Надеюсь, вы не забудете когда-нибудь "вернуться" со своим отзывом об этом (после того, как вы попробовали). Жаль, что нет такой вещи, как «напомнить мне позже» (чтобы вернуться к ней), например, реализованной с использованием чего-то вроде «Rules Scheduler» и / или «Flag» (как мы делали бы в Drupal, верно?). .. Примечание для себя: добавьте такую функцию в дистрибутив "ArrayShift" ...
Pierre.Vriens
Ну, он расширил мои знания, но еще не ответил на вопрос, это большая помощь, но все еще не достиг земли обетованной.
jelly46
Модуль LoginToboggan работал как шарм
jelly46
1
Конечно, нет проблем, давайте рассмотрим гибкость и возможности Drupal, чтобы выбрать то, что подходит каждому индивидуально!
Pierre.Vriens
5
Вы можете добавить настройки для страницы «По умолчанию 403 (доступ запрещен)» в конфигурации сайта (admin / config / system / site-information). А затем отобразите блок «Вход пользователя» (admin / структура / блок / управление / пользователь / логин / настройка) на этой странице.
Без модуля LoginToboggan можно настроить блок входа пользователя в систему, чтобы он отображался на назначенных страницах и был доступен только для анонимных пользователей. В блоке Настройки видимости для блока Вход пользователя:
На вкладке «страницы» установите для параметра «Показать блок на определенных страницах» значение «Только перечисленные страницы» и введите страницы.
На вкладке «Роли» установите флажок «Анонимный пользователь» для параметра «Показать блок» для настройки определенных ролей.
Теоретически вы можете установить страницу по умолчанию 403 (доступ запрещен) в разделе «Информация о сайте» для пользователя / входа в систему / admin / config / system / site-information.
Ответы:
Другое решение здесь - модуль LoginToboggan . Он предоставляет ряд различных улучшений для входа в систему.
Форма конфигурации параметров имеет опцию « Присутствовать при входе в систему при отказе в доступе» (403), которая включает / отключает эту функцию.
источник
Вариант 1. Используйте модуль CustomError
Модуль CustomError позволяет администратору сайта создавать пользовательские страницы ошибок для кодов состояния HTTP 403 (доступ запрещен) и 404 (не найден) без необходимости создавать узлы для каждого из них. Еще несколько подробностей о его функциях (со страницы проекта):
Вы должны быть заинтересованы в части « Пользователи, которые не вошли в систему и пытаются получить доступ к области, требующей входа в систему, будут перенаправлены на страницу, к которой они пытались получить доступ после входа в систему ».
Вариант 2. Перенаправление на пользователя / логин с помощью модуля «Правила»
«Добавление настроек для страницы« Отказано в доступе »и отображение блока« Вход пользователя в систему »на этой странице» - действительно решение, которое должно работать. Тем не менее, вы можете сделать еще один шаг вперед и улучшить пользовательский опыт AbitMORE. С помощью варианта подхода, описанного в ответе на вопрос « Как перенаправить анонимных пользователей на страницу входа с помощью модуля « Правила »? ».
Для этого предположим, что путь к странице «Default 403» установлен как «no_access» (через
/admin/config/system/site-information
нижнюю часть этой страницы администратора). Затем создайте правило с помощью модуля « Правила », используя в качестве события что-то вроде «После посещения узла no_access». Чтобы все правило выглядело примерно так:условия:
Parameter: User: [site:current-user], Roles: anonymous user
Parameter: Text: [site:current-page:url], Matching text: user/login
Действия: перенаправление страницы -
Parameter: URL: user/login
Если вы захотите сделать это, вы можете даже добавить другое действие, чтобы также отображать некоторые (информационные) сообщения в области сообщений Drupal, например, «Вы пытались посетить страницу, для которой требуется вход в систему ...».
Правда, для этого может потребоваться включить дополнительный модуль ( Правила ). Но, как показывает его растущая популярность, этот модуль, вероятно, уже включен практически на любом сайте (аналогично модулю Views ), потому что для этого модуля существуют десятки вариантов использования. Только 1 вариант этого вопроса: как насчет улучшения пользовательского опыта для «Страница не найдена» подобным образом?
Вариант 3: Показать блок входа пользователя на выделенной странице
Другой вариант, в качестве альтернативы правилам «Действие» (для перенаправления
user/login
), заключается в создании некоторого назначенного узла, скажем, с путем, подобным «my_login_page_with_login_block». А затем объедините это с настройкой блока «Вход пользователя» (черезadmin/structure/block
) следующим образом:configure
ссылку «» справа от этого блока входа пользователя, чтобы установить « Настройки видимости » для « Страниц ». Т.е. измените параметр « Показать блок на определенных страницах » на « Только перечисленные страницы » и укажите путь (my_login_page_with_login_block
) в текстовом поле под ним. Если по какой-то причине вы не хотите использовать путь, просто укажите вместо него узел / nid (nid = id узла).источник
Вы можете добавить настройки для страницы «По умолчанию 403 (доступ запрещен)» в конфигурации сайта (admin / config / system / site-information). А затем отобразите блок «Вход пользователя» (admin / структура / блок / управление / пользователь / логин / настройка) на этой странице.
источник
Без модуля LoginToboggan можно настроить блок входа пользователя в систему, чтобы он отображался на назначенных страницах и был доступен только для анонимных пользователей. В блоке Настройки видимости для блока Вход пользователя:
На вкладке «страницы» установите для параметра «Показать блок на определенных страницах» значение «Только перечисленные страницы» и введите страницы.
На вкладке «Роли» установите флажок «Анонимный пользователь» для параметра «Показать блок» для настройки определенных ролей.
источник
Теоретически вы можете установить страницу по умолчанию 403 (доступ запрещен) в разделе «Информация о сайте» для пользователя / входа в систему / admin / config / system / site-information.
Никогда не пробовал, но это просто идея?
источник