ساخت robots.txt در جنگو
یکی از فایلهای مهم برای وبسایتهایی که در اینترنت قرار دارند فایل robots.txt است که اگر پروژهای با فریمورک جنگو دارید نیز به این فایل نیاز دارید تا قانون ایندکس شدن سایت شما در موتورهای جستجو تعیین شود. این فایل در زبانهای برنامه نویسی دیگر کمی سادهتر قابل ایجاد و استفاده است ولی در جنگو هم به سادگی فقط با چند خط کد قابل ایجاد است. در این نوشته روش اضافه کردن فایل robots.txt را به برنامهی تحت وب شما با فریمورک Django را آموزش میدهیم.
ساخت robots.txt در جنگو
ابتدا یک فایل robots.txt در مسیر اصلی برنامهی خود ایجاد کنید و کدهای مربوط به فایل robots.txt را در آن قرار دهید. به طور مثال اگر قصد دارید هیچ موتور جستجویی سایت شما را ایندکس نکند از کد زیر استفاده کنید:
User-agent: * Disallow: /
نکته: در این آموزش قصد نداریم کارکرد و کدهای فایل robots.txt را توضیح دهیم و این موضوع را به عهدهی خودتان میگذاریم و آموزش را با عنوان اصلی آن پیش میبریم.
سپس فایل urls.py اصلی پروژه را باز کنید و خط زیر را به متغیر urlpatterns اضافه کنید:
path('robots.txt', views.robots, name="robots")
فایل urls.py را ذخیره کنید. حالا به فایل views.py بروید و تابع زیر را به آخر این فایل اضافه کنید:
def robots(request):
robots_file = read_robots(str(settings.BASE_DIR))
context = robots_file
return HttpResponse(context, content_type='text/plain')
فایل views.py را ذخیره کنید. از تابع read_robots برای خواندن فایل متنی robots.txt استفاده میشود که آن را نیز میتوانید در فایل views.py ذخیره کنید یا در انتهای فایل توابع خود که جداگانه آن را ایجاد کردهاید ذخیره کنید:
def read_robots(base_dir):
robots_file = base_dir + '/robots.txt'
if(os.path.isfile(robots_file)):
file = open(robots_file, 'r')
data = file.read()
file.close()
return data
return ""
حالا میتوانید در آدرس مورد نظر فایل robots.txt را مشاهده کنید و از صحت کار آن اطمینان حاصل کنید.
اگر هنوز نتوانستید فایل robots.txt ایجاد کنید در بخش نظرات همین نوشته برای ما بنویسید.



















این روش با nginx هم سازگاره؟
این روش برای تنظیمات داخلی جنگو طراحی شده است. برای استفاده با Nginx، باید تنظیمات مربوط به Nginx را انجام دهید تا فایل robots.txt را مستقیماً سرو کند.
من روی هاست اشتراکی تست کردم و جواب داد
خوشحالم که تونستید با موفقیت فایل robots.txt رو روی هاست اشتراکی پیادهسازی کنید.
توی پروداکشن هم همین روش رو استفاده کنیم یا بهتره استاتیک بذاریم؟
برای محیط پروداکشن، بهتر است فایل robots.txt را به صورت استاتیک در پوشه static پروژه قرار دهید و از این روش دینامیک استفاده نکنید
من وقتی robots.txt رو اضافه کردم، کش مرورگر باعث شد تغییرات دیده نشه
بله، کش مرورگر گاهی اوقات میتونه باعث عدم نمایش تغییرات بشه. خوشحالیم که مشکلتون حل شد.
خیلی ساده و کاربردی بود
موفق باشین