هل يمكنني منع التنزيل من الروابط الخارجية؟

يُظهر الأمر أن إعدادات nginx التي يستخدمها Discourse تتضمن بالفعل إعدادات لمنع الارتباط المباشر (hotlinking)، وإن كانت معلقة (commented out). لذا، ما يمكنك فعله هو إضافة بضعة أوامر استبدال إلى ملف app.yml الخاص بك لإلغاء تعليق تلك الأسطر.

قم بتحرير الملف /var/discourse/containers/app.yml باستخدام المحرر المفضل لديك. في النهاية ستجد قسم run، وفي نهاية هذا القسم ستجد أمر exec يطبع عبارة “end of custom commands”.

قبل أمر exec هذا، أضف الأسطر التالية:

  - replace:
      filename: "/etc/nginx/conf.d/discourse.conf"
      from: "#valid_referers none blocked mysite.com *.mysite.com;"
      to: valid_referers none blocked mysite.com *.mysite.com;

  - replace:
      filename: "/etc/nginx/conf.d/discourse.conf"
      from: "#if ($invalid_referer) { return 403; }"
      to: if ($invalid_referer) { return 307 /; }

في قسم الاستبدال الأول، سترى السطر الذي يحتوي على to: مع mysite.com *.mysite.com؛ استبدلها باسم النطاق الخاص بك، مثل discourse.org *.discourse.org. يفترض الاستبدال الثاني أنك تريد إعادة توجيه الزوار إلى الصفحة الرئيسية لـ Discourse.

بعد حفظ التغييرات، قم بتشغيل الأوامر التالية لإعادة بناء Discourse مع إعدادات nginx المحدثة.

cd /var/discourse
./launcher rebuild app
4 إعجابات