0

検索エンジンのスパイダーが @login_required をバイパスして、通常はログイン ユーザーが必要なページを表示できるようにするクリーンな方法を探しています。検索エンジンを自動的にダミー アカウントに記録するミドルウェアを作成することはできますが、それは正確にはクリーンとは言えません。より良い解決策の提案はありますか? ありがとう。

4

3 に答える 3

3

これをしないでください。これは「クローキング」であり、Google のインデックスから追放される可能性があります。

クローキングとは、ユーザーや検索エンジンに異なるコンテンツや URL を提示する行為を指します。ユーザー エージェントに基づいて異なる結果を提供すると、サイトが不正であると認識され、Google インデックスから削除される可能性があります。

代わりに、Google のFirst Click Freeソリューションを実装する必要があります。この設定では、Google 検索結果からの最初のクリックですべてのコンテンツを表示でき、その後のクリックはトラップされます。これは、リファラー ベースまたは Cookie ベースで行うことができます。First Click Free の詳細については、こちらをご覧ください。

于 2011-04-12T08:32:14.160 に答える
2

なぜあなたはこれをしたいのですか?検索エンジンがページを見ることができれば、情報は検索エンジンの結果ページに表示されるため、誰でもログインしなくてもページを見ることができます。いずれにせよ、スパイダーまたはボットを識別する唯一の方法は、そのユーザーエージェント文字列を使用することです。これは、なりすましには簡単です。

于 2011-04-11T20:34:38.560 に答える
0

理解できません。「@login_required」には、「必須」という重要な単語があります。それが「必要」である場合、それには正当な理由があります。Web ページを表示するには、資格情報が必須であることを意味します。内容がプライベート、シークレット等の内容であるため、

ページを検索エンジン経由で利用できるようにしたい場合は、それらを公開する必要があるため、ログインは不要になりました。そのため、ビューは @login_required デコレーターで保護されるべきではありません。

おそらく、問題はページの可用性を超えています。おそらく、あなたのコンテンツは実際に公開されるように作成されており、ビューはこのデコレーターによって保護されるべきではありません. 必要なのは、すべてのユーザー (ログに記録されているか匿名であるか) のパブリック部分をロードし、ユーザーが識別された場合に最終的にプライベート ビットをロードすることだけです。

それ以外の場合、スパイダー用のバックドアを残すことは間違いなく悪い考えです。なぜなら、あなたのプライベート コンテンツはプライベートではなくなるからです。

于 2011-04-12T06:31:06.297 に答える