অ্যাপাচি সার্ভারে সমস্ত ডোমেনের জন্য কীভাবে রোবট.টিএসটিএক্স ফাইল তৈরি করবেন


10

ভার্চুয়াল হোস্টগুলির সাথে আমাদের একটি এক্সএএমপিপি অ্যাপাচি ডেভেলপমেন্ট ওয়েব সার্ভার সেটআপ রয়েছে এবং আমাদের সমস্ত সাইট ক্রলিং থেকে সার্পগুলি থামাতে চাই। এটি সহজেই একটি রোবটস. টেক্সট ফাইল দিয়ে সম্পন্ন হয়। যাইহোক, আমরা বরং প্রতিটি ভোস্টে একটি নিষ্ক্রিয় রোবটস.টেক্সটকে অন্তর্ভুক্ত করব না এবং তারপরে আমরা যখন অন্য সার্ভারে সাইটের সাথে লাইভে গিয়েছিলাম তখন এটি সরিয়ে ফেলতে হবে।

সমস্ত vhosts- এ রোবটস.টেক্সট-এর সমস্ত অনুরোধগুলি একটি একক রোবটস.টি.এস.টি. ফাইলে পুনরায় লেখার জন্য কি অ্যাপাচি কনফিগারেশন ফাইলের কোনও উপায় আছে?

যদি তাই হয়, আপনি আমাকে একটি উদাহরণ দিতে পারেন? আমি মনে করি এটি এমন কিছু হবে:

RewriteEngine On
RewriteRule  .*robots\.txt$         C:\xampp\vhosts\override-robots.txt [L] 

ধন্যবাদ!


robots.txt বাধ্যতামূলক নয় এবং কিছু ক্রলার এটিকে উপেক্ষা করবে। এটি কোনও সুরক্ষা বৈশিষ্ট্য হিসাবে দেখা উচিত নয়। যদি আপনি আপনার সাইটটি জনসাধারণের জন্য প্রস্তুত না হওয়া অবধি লুকিয়ে রাখতে চান তবে প্রমাণীকরণ যুক্ত করুন।
মিরেসিয়া ভুটকোভিচি

উত্তর:


25

অ্যাপাচি মোড_ালিয়াস এটির জন্য ডিজাইন করা হয়েছে এবং কোর অ্যাপাচি সিস্টেম থেকে পাওয়া যায় এবং মোড_আরাইটের বিপরীতে প্রায় কোনও প্রসেসিং ওভারহেড না দিয়ে এক জায়গায় সেট করা যায়।

Alias /robots.txt C:/xampp/vhosts/override-robots.txt

Apache2.conf ফাইলে সেই লাইনটি সহ, সমস্ত ভোস্টের বাইরে, http://example.com/robots.txt - এটি যে কোনও ওয়েবসাইট এটি পরিবেশন করে, প্রদত্ত ফাইলটিকে আউটপুট দেবে।


এই. Aliasপ্রতিটি <VirtualHost>ব্লকে একটি রাখুন । +1 টি।
স্টিভেন সোমবার

ধন্যবাদ! যে নিখুঁতভাবে কাজ। আমি জানতাম একটি সহজ সমাধান আছে ...
মাইকেল বার্কম্পাস

আপনি যদি এটি প্রতিটি একক ভার্চুয়াল-হোস্টে চান তবে আপনার এটির মধ্যে এটি রাখার দরকার নেই। এটি বিশ্বব্যাপী স্তরে যেতে পারে, যেমন ডিফল্ট / ম্যানুয়াল ওরফে বক্সের বাইরে চলে যায়।
আলিস্টার বুলম্যান

সমাধানের জন্য ধন্যবাদ সি: / যদিও সেখানে আমার উইন্ডোজ সার্ভার রয়েছে তা জেনে আমার পেটে অসুস্থ করে তুলেছে :) আমি আমার সম্পাদনাগুলি আমার মডিউল.কনফ ফাইলে বা মোডস-সক্ষম / উপ / কনফারেন্সে রেখেছি: উপনাম
/robots.txt

1
অন্যান্য অ্যাক্সেস নিয়ন্ত্রণগুলি এটিকে অবরুদ্ধ করে রাখবে, তার <Location "/robots.txt"> Allow from all </Location><IfModule alias_module>
নামটি রাখুন

1

আপনার সাধারণ গ্লোবাল robots.txtফাইলটিকে আপনার সার্ভারের ফাইল সিস্টেমে এমন কোনও জায়গায় রাখুন যা অ্যাপাচি প্রক্রিয়াটিতে অ্যাক্সেসযোগ্য। চিত্রণ অনুরোধে জন্য, আমি এটি এর অনুমান করব /srv/robots.txt

তারপরে, mod_rewriteক্লায়েন্টদের যারা এটির অনুরোধ করে তাদের কাছে ফাইলটি পরিবেশন করতে সেট আপ করতে প্রতিটি vhost এর <VirtualHost>কনফিগার ব্লকে নিম্নলিখিত বিধিগুলি রেখে দিন :

RewriteEngine on
RewriteRule ^/robots.txt$ /srv/robots.txt [NC, L]

আপনি যদি ব্লকগুলির .htaccessপরিবর্তে প্রতি-ডিরেক্টরি ফাইলগুলিতে পুনর্লিখনের নিয়মগুলি রাখছেন তবে আপনাকে <VirtualHost>নিয়মগুলি সামান্য পরিবর্তন করতে হবে:

RewriteEngine on
RewriteBase /
RewriteRule ^robots.txt$ /srv/robots.txt [NC, L]

আপনি কি এইটিকে ব্যাখ্যা করতে পারেন "আপনার সাধারণ গ্লোবাল রোবটসটিটিএসটি ফাইলটিকে আপনার সার্ভারের ফাইল সিস্টেমে এমন কোনও জায়গায় রাখুন যা অ্যাপাচি প্রক্রিয়াটিতে অ্যাক্সেসযোগ্য। উদাহরণের জন্য, আমি ধরে নিব এটি /srv/robots.txt এ আছে। আরো বিস্তারিত? অ্যাপাচি প্রসেসের জন্য একটি ডিরেক্টরি উপলভ্য করে আপনি কী বোঝেন তা আমার জানতে হবে?
মাইকেল বারকম্পাস

প্রতিটি সাইট C: am xampp \ vhosts
মাইকেল বেরকম্পাস

@ মিশেল: অতিরিক্ত জটিল এই mod_rewriteহ্যাকটি নিয়ে বিরক্ত করবেন না । Aliasপরিবর্তে অ্যালিসারের পরামর্শ অনুসারে ব্যবহার করুন ।
স্টিভেন সোমবার

0

আপনি লিনাক্সে এক্সএএমপিপি চালাচ্ছেন কিনা তা নিশ্চিত নন, তবে আপনি যদি হন তবে আপনি সমস্ত ভার্চুয়াল হোস্ট থেকে একই রোবটস টেক্সট ফাইলটিতে একটি সিমিলিংক তৈরি করতে পারতেন , তবে আপনাকে অবশ্যই প্রতিটি ভার্চুয়াল হোস্টের জন্য অ্যাপাচি কনফিগারেশন রয়েছে কিনা তা নিশ্চিত করতে হবে প্রতিলিঙ্কগুলি অনুসরণ করার অনুমতি দেওয়া হয়েছে ( <Directory>নির্দেশের অধীনে Options FollowSymLinks)।


আমি বরং প্রতিটি ভোস্ট ঘোষণার সম্পাদনা করতে চাই না। 30 এরও বেশি রয়েছে ... প্লাস, আমি এটি একটি স্বয়ংক্রিয় ওভার রাইড হতে চাই যাতে কোনও নতুন ভোস্ট তৈরি করার সময় আমাকে কিছু করতে হবে না।
মাইকেল বার্কোপাবাস

মাইকেল, কেবলমাত্র একটি সাধারণ সম্পাদনা করার জন্য সেড ব্যবহার করুন, বেশ সহজ স্টাফ, আপনাকে অবশ্যই ম্যানুয়ালি এটি করার দরকার নেই। এটি নীচে এখানে কীভাবে করবেন তা দেওয়া হয়েছে: blog.netflowdevelopments.com/2012/10/11/…
unc0nnected

0

সমাধানের জন্য বিভিন্ন পন্থা।

আমি আমার ক্লাস্টার পরিবেশে একাধিক (300 এরও বেশি) ভার্চুয়ালহোস্ট হোস্ট করি। আমার সার্ভারগুলিকে হামাগুড়ি দিয়ে হামলা থেকে রক্ষা করার জন্য, আমি 10 সেকেন্ডের জন্য ক্রল-বিলম্বকে সংজ্ঞায়িত করি।

তবে, আমি আমার সমস্ত ক্লায়েন্টকে একটি স্থির রোবটস.টিএসটি কনফিগারেশন দিয়ে প্রয়োগ করতে পারি না। আমি আমার ক্লায়েন্টদের তারা করতে চাইলে তাদের নিজস্ব রোবট.এসটিএসটি ব্যবহার করতে দিয়েছি।

ফাইলটি উপস্থিত থাকলে প্রথমে মডিউলটি পুনরায় লেখুন। যদি এটি বিদ্যমান না থাকে, মডিউলগুলি আমার ডিফল্ট কনফিগারেশনে পুনর্লিখন করে। নীচে কোড উদাহরণ ...

পুনরায় লেখার অভ্যন্তরীণ রাখতে, উপন্যাসটি ব্যবহার করা উচিত। নতুন ব্যবহারকারীর পক্ষ থেকে দ্বন্দ্ব ঘটাতে পারে এমন একটি নতুন এলিফ সংজ্ঞায়নের পরিবর্তে, আমি আমার রোবটস.টেক্সটকে / এপিএইচই / ত্রুটি / ফোল্ডারের ভিতরে রেখেছি যা ইতিমধ্যে একটি ডিফল্ট ডিফল্ট কনফিগারেশন হিসাবে রয়েছে।

<Directory /HOSTING/*/*/public_html>
        Options SymLinksIfOwnerMatch
        <Files robots.txt>
                RewriteEngine On
                RewriteCond %{REQUEST_FILENAME} -f [OR]
                RewriteCond %{REQUEST_FILENAME} -d
                RewriteRule (.*) - [L]
                RewriteRule (.*) /error/robots.txt [L]
        </Files>
</Directory>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.