سؤال

أقوم بإنشاء موقع يسمح للمستخدمين بإضافة روابط عنوان URL -> روابط عنوان URL. أريد أن يتمكن العديد من المستخدمين من الارتباط بعنوان URL نفسه (تمامًا ، نفس مثيل الكائن).

لذلك إذا كان المستخدم 1 أنواعًا في "http://www.facebook.com/index.php"و user 2 أنواع في"http://facebook.com"و user 3 أنواع في" www.facebook.com "كيف يمكنني" تحويلهم "إلى ما يحلونه جميعًا إلى:"http://www.facebook.com/"

النهاية الخلفية في بيثون ...

كيف يتتبع محرك البحث عناوين URL؟ هل يحتفظون بعنوان URL ثم يأخذون أي شيء يحله أو يقذفون عناوين URL التي تختلف عن ما يحلونه ويهتمون فقط بالإصدار الذي تم حله؟

شكرًا!!!

هل كانت مفيدة؟

المحلول

لذلك إذا كان المستخدم 1 أنواعًا في "http://www.facebook.com/index.php"و user 2 أنواع في"http://facebook.com"و user 3 أنواع في" www.facebook.com "كيف يمكنني" تحويلهم "إلى ما يحلونه جميعًا إلى:"http://www.facebook.com/"

يمكنك حل المستخدم 3 عن طريق إصلاح عناوين URL غير صالحة. www.facebook.com ليس عنوان URL ، ولكن يمكنك تخمين ذلك http:// يجب أن تذهب في البداية. جزء المسار الفارغ هو نفسه / المسار ، حتى تتمكن من التأكد من أن يحتاج إلى النهاية أيضًا. يجب أن يكون محلل URL الجيد قادرًا على القيام بهذا الشيء.

يمكنك حل المستخدم 2 عن طريق تقديم طلب HTTP إلى عنوان URL. إذا عاد مع رمز الحالة 301, ، لديك إعادة توجيه دائم إلى عنوان URL الحقيقي في Location رأس الاستجابة. الفيسبوك يفعل هذا لإرساله facebook.com حركة المرور إلى www.facebook.com, ، وهو بالتأكيد شيء يجب أن تفعله المواقع (على الرغم من أن الكثيرين في العالم الحقيقي ليسوا). قد تسمح بالنظر في السماح برموز حالة إعادة التوجيه الأخرى في 3xx الأسرة لفعل الشيء نفسه ؛ إنه ليس الشيء الصحيح الذي يجب القيام به حقًا ، لكن بعض المواقع تستخدم 302 بدلاً من 301 لإعادة التوجيه لأنها سميكة بعض الشيء.

إذا كان لديك الوقت والموارد الشبكة (بالإضافة إلى مزيد من التعليمات البرمجية لمنع الميزة التي تعرض للإساءة إلى DOS أنت أو الآخرين) ، فيمكنك أيضًا التفكير في الحصول على صفحة الويب المستهدفة وتوحلها (على افتراض أن الأمر يتبين أن HTML). إذا كان هناك <link rel="canonical" href="..." /> العنصر في الصفحة ، يجب عليك أيضًا التعامل مع عنوان URL على أنه العنوان المناسب. (عرض المصدر: stack overflow يفعل هذا.)

ومع ذلك ، لسوء الحظ ، لا يمكن حل حالة المستخدم 1. يقدم Facebook صفحة في / وصفحة في /index.php, ، وعلى الرغم من أننا نستطيع أن ننظر إليهم ونقول إنهم متماثلون ، لا توجد طريقة فنية لوصف تلك العلاقة. في عالم مثالي ، سيتضمن Facebook إما أ 301 إعادة توجيه الاستجابة أو أ <link rel="canonical" /> لإخبار الناس بذلك / هل كان عنوان URL المناسب للوصول إلى مورد معين بدلاً من /index.php (أو العكس). لكنهم لا يفعلون ذلك ، وفي الواقع معظم مواقع الويب التي تعتمد على قاعدة البيانات لا تفعل ذلك بعد.

للتغلب على هذا ، تقارن بعض محركات البحث (*) المحتوى في مجالات مختلفة [Sub] ، وبدرجة محدودة أيضًا مسارات مختلفة على نفس المضيف ، وتخمين أنها متشابهة إذا كان المحتوى متشابهًا بما فيه الكفاية. بالطبع هذا كثير من العمل ، ويتطلب الكثير من التخزين والمعالجة ، وهو في النهاية لا يمكن الاعتماد عليه بشكل رهيب.

لن أزعج الكثير من هذا ، إلى جانب إصلاح عناوين URL كما في حالة المستخدم 3. من وصفك ، لا يبدو أنه من الضروري أن تتقاسم الصفحات "المتماثلة" الهوية الفعلية ، ما لم تكن هناك حالة استخدام معينة لم تذكرها.

(*: حسنًا ، Google على أي حال ؛ أكثر تقليدية لم تكن تقليديًا ، وستقدم بسعادة روابط متعددة لنفس الصفحة ، لكنني أفترض أن التخصصات الأخرى تفعل شيئًا مشابهًا الآن.)

نصائح أخرى

لا توجد وسيلة لمعرفة ، بخلاف المعرفة "السحرية" حول الموقع المحدد ، أن "/index.php" هو نفسه الجلب "/".

لذلك ، مشكلتك ، كما ذكر ، مستحيلة.

سأقوم بحفظ رابط 3 كما هو مفصول ، حيث لا يمكنك أبدًا إخبارهم بشكل موثوق بأنهم حلوا في نفس الصفحة. كل هذا يتوقف على كيفية حل الخادم (خارج عن سيطرتنا) عن عنوان URL.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top