ریدایرکت تمام درخواستها از http به https در جنگو
در این نوشته روش تبدیل کل درخواستهای با پروتکل http را به https به شما آموزش میدهیم. در این آموزش تغییرات ما روی فایل تنظیمات جنگو است و مستقیم این کار را روی جنگو django انجام میدهیم.
ریدایرکت تمام درخواستها از http به https در جنگو
برای این کار فایل settings.py فولدر اصلی پروژه را باز کنید و در انتهای این فایل دستور زیر را قرار دهید:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT = True
نکته: دقت کنید حتما باید در همین فایل و متغیر MIDDLEWARE مقدار django.middleware.security.SecurityMiddleware قرار گیرد.
اگر مشکل شما با کد بالا حل نشد در بخش نظرات همین نوشته برای ما بنویسید.
برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]



















این تنظیم روی سرعت لود شدن سایت تاثیری داره یا نه؟
تأثیر قابل توجهی بر سرعت لود شدن سایت ندارد، بلکه باعث کمی تأخیر جزئی و بسیار ناچیز میشود، زیرا مرورگر باید یک قدم اضافی برای ریدایرکت از HTTP به HTTPS انجام دهد. اما این تأخیر در مقابل افزایش امنیت و اعتبار سئو ناچیز است و ارزش دارد.
میشه فقط بعضی مسیرها رو ریدایرکت کرد به https یا حتما باید همهشون باشه؟
بله، با استفاده از تنظیمات پیشرفته در وبسرور (Nginx/Apache) یا با استفاده از میانافزارهای (Middleware) پیشرفتهتر در جنگو، میتوانید شرطگذاری کنید که فقط مسیرهای خاصی (مثلاً صفحات لاگین یا پرداخت) به HTTPS ریدایرکت شوند، اما برای امنیت و سئو، توصیه میشود همه مسیرها ریدایرکت شوند.
بعد از این تغییرات باید کش مرورگر رو پاک کنیم یا خودش اوکی میشه؟
در بیشتر موارد، بهخصوص اگر قبلاً از HTTP استفاده کردهاید، بهتر است کش مرورگر را پاک کنید یا با یک مرورگر دیگر تست کنید. این کار تضمین میکند که مرورگر، ریدایرکتهای قدیمی را به یاد نداشته باشد و تغییرات جدید HTTPS را بهدرستی اعمال کند.
این تنظیمات با nginx یا apache هم تداخل نداره؟
خیر، اگرچه این تنظیمات مربوط به جنگو هستند، اما به عنوان یک لایه امنیتی داخلی در کنار Nginx/Apache کار میکنند و تداخلی ایجاد نمیکنند. در واقع، اغلب این تنظیمات پس از فعالسازی HTTPS در وبسرور، برای تقویت امنیت در سطح اپلیکیشن استفاده میشوند.
اگه پروژه روی لوکال ران بشه هم همینطوری ریدایرکت می کنه؟
اگر SECURE_SSL_REDIRECT را روی True تنظیم کنید، جنگو در حالت لوکال نیز تلاش میکند ریدایرکت را انجام دهد، اما به دلیل نداشتن گواهی SSL معتبر روی localhost، احتمالاً با خطاهای گواهی (SSL errors) در مرورگر مواجه خواهید شد. بهتر است در محیط توسعه این تنظیم را غیرفعال کنید.