كيف يمكنني إيقاف الروبوتات من زيادة عداد تنزيل الملفات في PHP؟

StackOverflow https://stackoverflow.com/questions/235558

  •  04-07-2019
  •  | 
  •  

سؤال

عندما ينقر المستخدم على رابط لتنزيل ملف على موقع الويب الخاص بي، فإنه ينتقل إلى ملف PHP هذا مما يؤدي إلى زيادة عداد التنزيل لهذا الملف ثم يقوم header() بإعادة توجيههم إلى الملف الفعلي.أظن أن الروبوتات تتبع رابط التنزيل، ومع ذلك، فإن عدد التنزيلات غير دقيق.

  • كيف أعلم الروبوتات بأنه لا ينبغي لها اتباع الرابط؟
  • هل هناك طريقة لاكتشاف معظم الروبوتات؟
  • هل هناك طريقة أفضل لحساب عدد التنزيلات التي يحصل عليها الملف؟
هل كانت مفيدة؟

المحلول

ملف الروبوتات: http://www.robotstxt.org/robotstxt.html

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

نصائح أخرى

أعتقد أن إجابة ملف robots.txt الخاصة بـ Godeke ستكون كافية.إذا لم تتمكن مطلقًا من الحصول على الروبوتات في عدادك، فإنني أوصي باستخدام ملف الروبوتات جنبًا إلى جنب مع عدم زيادة النقرات مع بعض وكلاء مستخدم الروبوت المشترك.

لا تعتبر أي من الطريقتين مثاليتين، لكن الخلط بين الاثنين ربما يكون أكثر صرامة بعض الشيء.إذا كنت أنا، فمن المحتمل أن ألتزم بملف الروبوتات، لأنه سهل وربما الحل الأكثر فعالية.

إن Godeke على حق، فملف robots.txt هو أول شيء يجب فعله لمنع تنزيل الروبوتات.

فيما يتعلق بالعد، فهذه مشكلة في تحليلات الويب حقًا.هل لا تحتفظ بسجلات الوصول إلى www الخاصة بك وتقوم بتشغيلها من خلال برنامج تحليلي مثل؟ ويبالايزر أو أوستاتس (أو البدائل الفاخرة مثل Webtrends أو Urchin)؟بالنسبة لي، هذه هي الطريقة التي يجب اتباعها لجمع هذا النوع من المعلومات، لأنها سهلة ولا توجد PHP أو إعادة توجيه أو أداء آخر عندما يقوم المستخدم بتنزيل الملف.أنت تستخدم فقط سجلات Apache التي تحتفظ بها على أي حال.(و grep -c سيعطيك العد السريع والقذر لملف معين أو نمط حرف البدل.)

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

يمكنك أيضًا اكتشاف برامج الروبوت الضارة، والتي لا تحترم استخدام ملف robots.txt http://www.bad-behavior.ioerror.us/.

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