В Django отключите @login_required для поисковиков - PullRequest
0 голосов
/ 12 апреля 2011

Я ищу чистый способ позволить паукам поисковой системы обходить @login_required, просматривая страницы, которые обычно требуют зарегистрированного пользователя.Я мог бы написать промежуточное программное обеспечение, которое бы автоматически регистрировало поисковые системы на фиктивную учетную запись, но это не совсем то, что я бы назвал чистым.Любые предложения для лучшего решения?Спасибо.

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

Не делай этого. Это «маскировка», и вы можете быть заблокированы из индекса Google.

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

Вместо этого вам нужно внедрить решение Google First Click Free . В этой настройке первый клик из результатов поиска Google может увидеть весь контент, последующие клики фиксируются. Это может быть сделано на основе ссылки или на основе файлов cookie. Вы можете узнать больше о First Click Free здесь:

2 голосов
/ 12 апреля 2011

Почему вы хотите это сделать?Если поисковые системы могут видеть страницы, то любой может видеть их без входа в систему, потому что информация будет отображаться на странице результатов поисковой системы.В любом случае, единственный способ идентифицировать паука или бота - по его строке агента пользователя, что тривиально подделать.

0 голосов
/ 12 апреля 2011

Я не понимаю. в "@login_required" у вас есть важное слово: "обязательно". если это "требуется", это по уважительной причине. Это означает, что для просмотра веб-страницы ваши учетные данные являются обязательными. Поскольку контент является частным, секретным и т. Д.

Если вы хотите, чтобы ваши страницы были доступны через поисковые системы, вы должны сделать их общедоступными, и, следовательно, логин не больше не требуется. Итак, ваш взгляд не должен быть защищен декоратором @login_required.

Возможно, ваша проблема лежит за пределами доступности ваших страниц. Возможно, ваш контент на самом деле сделан публичным, и ваши декораторы не должны защищать его. Возможно, единственное, что вам нужно, это загрузить открытую часть для каждого пользователя (зарегистрированного или анонимного) и в конечном итоге загрузить личные биты, если ваш пользователь идентифицирован.

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

...