Как скрыть узлы Drupal, к которым нет прямого доступа от пользователей и поисковых систем? - PullRequest
2 голосов
/ 24 сентября 2010

Я видел много похожих вопросов, но не совсем то, что я ищу.Таким образом, рискуя сказать, что это дубликат ... вот так.

Я обнаружил, что иногда у меня есть узел, который просто содержит контент, который будет отображаться где-то еще, но не долженне может быть просмотрено напрямую.То есть никто никогда не должен переходить на узел / 1234, но содержимое в узле 1234 должно отображаться где-то еще.

Например, я создаю страницу about с содержимым с вкладками, используя представления.Итак, есть страницы «О себе», «О нас» и «О них».Все они отображаются на одной странице с вкладками с использованием представлений.Поэтому я не хочу, чтобы люди попадали прямо в узел «О нас», потому что тогда они не увидели бы вкладки для других страниц.В то же время я не хочу, чтобы Google давал людям прямую ссылку на этот узел, я хочу ограничить доступ, чтобы пользователи могли получать к нему доступ только через представление (т. Е. Вкладку).

необходимо ограничить доступ к узлу, удалить его из результатов поиска Drupal и убедиться, что Google его не обнаружит.Любые предложения?

---- Примечание ----

Я принял ответ от Mingos (спасибо, кстати), потому что, хотя это не полный ответ / решение, он дал мненекоторые хорошие вещи для размышления.Дополнительные ответы все еще приветствуются.

Ответы [ 7 ]

4 голосов
/ 27 июля 2012

В Drupal 7 вы можете использовать: http://drupal.org/project/internal_nodes

Описание: Некоторый контент / узлы никогда не должны просматриваться напрямую; видны только через что-то еще, например, виды или панели. Этот модуль запрещает доступ к URL-адресам узлов / [nid], в то же время позволяя контенту оставаться опубликованным и иным образом видимым.

Полное раскрытие: я являюсь создателем и соавтором внутренних узлов. Я нашел этот вопрос во время поиска, чтобы увидеть, как этот модуль можно найти в Google.

2 голосов
/ 12 марта 2014

Существует также другой модуль Кроличья нора , который имеет аналогичную функциональность, такую ​​как Внутренние узлы , но работает для всех объектов, а не только для узлов.

2 голосов
/ 03 февраля 2011

Я нашел эту страницу после того, как столкнулся с этой же проблемой.

То, что я нашел, сработало для меня: часть ответа, который вам нужен:

Посмотритев модуле перенаправления менеджера страниц http://drupal.org/project/page_manager_redirect.Я только начал играть с этим.

Он использует модуль менеджера страниц CTools для перенаправления одной страницы на другую.Что делает это наиболее мощным, так это то, что Page Manager использует контексты.Итак, если вы хотите перенаправить все страницы определенного типа контента, вы можете сделать это.

Я только начал использовать его (вместо перенаправления таксономии и перенаправления пути) для перенаправления (код ответа 301) моей таксономиитермины для определенного словаря для определенных узлов.

В вашем случае вы должны иметь возможность использовать контексты для фильтрации определенных страниц.

Конечно, это не решает проблему этих узловв результатах поиска.

2 голосов
/ 24 сентября 2010

Тяжелый.

Если вы хотите иметь много таких узлов и динамически «отображать в другом месте», я не могу сейчас ни о чем думать (в 2:20 утра я редко могу).

Если такая страница есть (или очень мало), я бы ограничил доступ к ней любыми доступными способами (разрешения, доступ к содержимому, доступ к контенту, TAC и т. Д.), А затем создал бы специальные темы для страниц, на которыхограниченный контент должен отображаться.Темы будут содержать запросы к базе данных, извлекающие содержимое из ограниченных узлов.

Другая возможность может включать создание специальной темы для рассматриваемых скрытых узлов (возможно, все они принадлежат к одному и тому же типу содержимого?).Сделайте так, чтобы на полном узле ничего не отображалось (или сообщение о том, что доступ ограничен), и добавьте метатег ROBOTS, просящий Google не индексировать страницу.Хотя сделайте тизер-представление доступным - вы можете свободно отображать его внутри представления, но, поскольку / node / 1234 - это ПОЛНОЕ представление, здесь фактическое содержимое будет недоступно.

Не знаю, если это решит вашу проблему, надеюсьпомогает хоть немного.

1 голос
/ 14 марта 2011

У меня та же проблема, и в настоящее время я думаю о следующем решении, где все содержимое узла должно отображаться для определенных пользователей (на основе разрешений): - отменить публикацию узла - создать новый опубликованный флажок - создать представление с полями, отображающими все содержимое

Тщательно еще не проверил, но, похоже, работает.

Узел должен отображаться для создателя (только один в разрешении 1), некоторые из них для разрешения 2 и все для разрешения 3.

Любые комментарии к этому решению.

Я предполагаю, что это также исключит его из поиска, но разрешения 2 и 3 должны быть в состоянии найти его. До сих пор не понял этого.

0 голосов
/ 23 февраля 2015

Существует действительно простой способ сделать это, если вы хотите показывать только тип контента через представление.

  1. создайте тип контента как и сделайте его неопубликованным.
  2. создайте представление и установите для фильтра значение «Содержимое: опубликовано (нет)»

представление предоставит пользователям доступ к контенту через представление, но они не получат доступ к неопубликованному контенту по прямой ссылке на контент.

0 голосов
/ 16 января 2015

Я использовал модуль «Правила» с «сущностью из комплекта» и встроенным действием «Перенаправление страницы».

...