質問
私は、ユーザーがキーワードを追加することを可能にするサイトを作成しています。私は、複数のユーザーが同じURL(まったく同じ、同じオブジェクトインスタンス)へのリンクにできるようにしたい。
もしそうならば「の利用者1種類 http://www.facebook.com/index.php > "とユーザに2種類の " http://facebook.com のWWW" とユーザに3種類"。 ます。http://www.facebook:facebook.com「何これらすべて解決するためにそれらを 『変換』どのよう最善を尽くす」 .COM / に "
バックエンドがPythonである...
どのように検索エンジンは、URLを追跡していますか?彼らはそれはに解決これまで何取るURLを保つか、それらが解決し、ちょうど解決したバージョンを気に彼らが異なっているURLを投げるんですか?
感謝!!!
解決
もしそうならば「の利用者1種類 http://www.facebook.com/index.php > "とユーザに2種類の " http://facebook.com のWWW" とユーザに3種類"。 ます。http://www.facebook:facebook.com「何これらすべて解決するためにそれらを 『変換』どのよう最善を尽くす」 .COM / に "
あなたは無効なURLを固定することにより、ユーザ3を解決すると思います。 www.facebook.com
はURLではありませんが、http://
は、起動時に行くべきであると推測することができます。あなたはニーズがあまりにも終わりに行くにことを確認することができますので、空のパス部分は、/
パスと同じです。良いURLパーサーは、このビットを行うことができる必要があります。
あなたはURLにHTTP HEADリクエストを行うことにより、ユーザ2を解決することができます。それは301
のステータスコードで戻ってくる場合は、Location
レスポンスヘッダー内の実際のURLへの永続的なリダイレクトを持っています。 Facebookはfacebook.com
にwww.facebook.com
トラフィックを送信するためにこれを行い、そしてそれは間違いなくサイトは(現実の世界では多くはなくても)やるべきことを何か。あなたは同じことを行うために3xx
ファミリーの許可他のリダイレクトステータスコードを検討できる場合があります。それは実際に行うには正しいことではないのですが、彼らは少し厚くしているので、いくつかのサイトでは、リダイレクトのための代わりに302
の301
を使用します。
は、あなたも(それが判明したと仮定すると、HTMLもOT)ターゲットウェブページを取得し、それを解析検討することができます。ページ内の<link rel="canonical" href="..." />
要素がある場合は、適切なものであるとしてそのURLを扱う必要があります。 (ソースの表示:スタックオーバーフローがこれを行う)
しかし、残念ながら、ユーザー1の場合は解決することはできません。 Facebookは/
で/index.php
のページとページを提供している、と我々は彼らを見て、彼らは同じだと言うことができますが、その関係を記述するための技術的な方法がありません。理想的な世界ではFacebookは301
のリダイレクト応答や<link rel="canonical" />
がアクセスを特定のリソースではなく、/
(またはその逆)適切な形式のURLであったことを人々に伝えるために/index.php
のいずれかが含まれるであろう。しかし、彼らはそうではない、実際には、ほとんどのデータベース駆動型のWebサイトでは、どちらかまだこれをしない。
これを回避するには、いくつかの検索エンジン(*)が異なる(サブ)ドメインのコンテンツを比較して、限られた範囲で、同じホスト上の異なるパス、コンテンツが十分であれば、彼らは同じだと思います類似しました。もちろんこのうち、多くの作業で保管や処理の多くを必要とし、最終的にはそれほど信頼できません。
私は本当に、ユーザ3の場合のようなURLを固定超えて、本の多くを気にしないでしょう。あなたの説明から、その本質的なのは思えない、あなたが言及していない特定のユースケースがありますしない限り、実際の同一性を共有しなければならない「と同じである」というページ。
(*:まあ、グーグルとにかく、より伝統的なものは、伝統的にしませんでしたし、喜んで同一のページに対する複数のリンクを果たすだろうが、私は他の専攻は今似た何かをやっていると仮定と思います。)
他のヒント
「「/index.php」がフェッチと同じであること、特定のウェブサイトについての「魔法」の知識以外に知る方法、ありません/".のp>
だから、あなたの問題は、述べたように、不可能である。
私は、3リンクを保存したいです。それはすべての(私たちのコントロールの外)のサーバがURLを解決する方法によって異なります。