يمكنني منع البحث الزواحف لكل موقع على خادم الويب Apache?

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

سؤال

لدي نوعا من انطلاق الخادم على شبكة الإنترنت العامة تعمل نسخ من الإنتاج رمز عدد قليل من المواقع.أنا حقا لا ترغب في ذلك إذا كان على التدريج مواقع الحصول على فهرستها.

هل هناك طريقة يمكنني تعديل بلدي httpd.conf على التدريج ملقم كتلة محرك البحث الزواحف?

تغيير robots.txt لن تعمل حقا منذ أن كنت تستخدم البرامج النصية نسخ نفس قاعدة القانون على كل من الملقمات.أيضا, أنا لا تغيير المضيف الظاهري conf الملفات إما كما أن هناك مجموعة من المواقع و أنا لا أريد أن نتذكر أن أكثر من نسخة معينة الإعداد إذا قمت بعمل موقع جديد.

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

المحلول

وإنشاء ملف robots.txt مع محتويات التالية:

User-agent: *
Disallow: /

ووضع هذا الملف في مكان ما على الخادم المرحلي الخاص بك؛ الجذر الدليل هو مكان عظيم لأنها (على سبيل المثال /var/www/html/robots.txt).

وإضافة ما يلي إلى ملف httpd.conf:

# Exclude all robots
<Location "/robots.txt">
    SetHandler None
</Location>
Alias /robots.txt /path/to/robots.txt

وربما لا يطلب التوجيه SetHandler، ولكن قد تكون هناك حاجة إلى ذلك إذا كنت تستخدم معالج مثل mod_python، على سبيل المثال.

وهذا سيتم الآن خدم ملف robots.txt لجميع المضيفين الظاهري على الخادم الخاص بك، تجاوز أي ملف robots.txt قد يكون لديك المضيفين الفردية.

و(ملاحظة: جوابي هو أساسا نفس الشيء الذي الإجابة ceejayoz ويقترح عليك القيام به، ولكن كان لي لقضاء بضعة دقائق إضافية معرفة جميع التفاصيل للحصول على العمل قررت أن أضع هذه الإجابة هنا ل أجل الآخرين الذين قد تتعثر هذه المسألة).

نصائح أخرى

ويمكنك استخدام mod_rewrite وأباتشي للقيام بذلك. لنفترض أن المضيف الخاص بك الحقيقي هو www.example.com والمضيف انطلاق الخاص بك هو staging.example.com. قم بإنشاء ملف يسمى "الروبوتات staging.txt" وبشروط إعادة كتابة طلب أن يذهب إلى ذلك.

وهذا المثال سيكون مناسبة لحماية موقع انطلاق واحدة، وقليلا من حالة استخدام أبسط مما كنت طالبا، ولكن عملت هذا موثوق بالنسبة لي:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Dissuade web spiders from crawling the staging site
  RewriteCond %{HTTP_HOST}  ^staging\.example\.com$
  RewriteRule ^robots.txt$ robots-staging.txt [L]
</IfModule>

وقد تتمكن من محاولة لإعادة توجيه العناكب لملف robots.txt الرئيسي على خادم آخر، ولكن بعض العناكب قد تحجم بعد أن تحصل على أي شيء آخر غير "200 OK" أو "404 لم يتم العثور" رمز الإرجاع من طلب HTTP، وأنها قد لا قراءة URL إعادة توجيه.

وهنا هو كيف يمكنك أن تفعل ما يلي:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Redirect web spiders to a robots.txt file elsewhere (possibly unreliable)
  RewriteRule ^robots.txt$ http://www.example.com/robots-staging.txt [R]
</IfModule>

هلا مستعار robots.txt على التدريج virtualhosts المقيد robots.txt استضافت في مكان مختلف ؟

لوقف حقا صفحات من فهرستها، ستحتاج إلى إخفاء مواقع وراء <لأ href = "http://httpd.apache.org/docs/1.3/mod/mod_auth.html" يختلط = "noreferrer نوفولو "> HTTP المصادقة . يمكنك القيام بذلك في ملفك التكوين أباتشي العالمي واستخدام ملف .htpasswd بسيط.

والجانب السلبي الوحيد لهذا هو أن يكون لديك الآن لكتابة اسم المستخدم / كلمة المرور في المرة الأولى التي تقوم بالاستعراض إلى أي صفحات على الخادم المرحلي.

اعتمادا على نشر السيناريو ، عليك أن تبحث عن طرق نشر مختلفة robots.txt ملفات dev/المرحلة/اختبار/همز (أو أي مجموعة لديك).على افتراض أن يكون لديك قاعدة بيانات مختلفة التكوين الملفات أو (أو أي شيء مماثل) على خوادم مختلفة ، وهذا ينبغي أن تتبع عملية مماثلة (أنت هل لديك كلمات مرور مختلفة عن قواعد البيانات, صحيح؟)

إذا لم يكن لديك خطوة واحدة عملية نشر في المكان ، وربما هذا هو الدافع جيدة للحصول على واحدة...هناك طن من الأدوات هناك بيئات مختلفة - كابيسترانو هو جيد و يفضل في القضبان/جانغو العالم ، ولكن ليس الوحيد.

الفشل في كل ذلك ، ربما يمكن اقامة العالمية مستعار التوجيه في اباتشي التكوين التي تنطبق على جميع virtualhosts وأشر إلى التقييدية ، robots.txt

عن طريق أباتشي لوقف الروبوتات السيئة . يمكنك الحصول على كلاء المستخدم عبر الإنترنت أو مجرد السماح المتصفحات، بدلا من محاولة منع جميع السير.

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