اعادة كتابة الروابط في nginx

السلام عليكم

لدي سيرفر للتنزيل الفيديوهات .. وهو ب nginx

ونظام الروابط كالتالي:

والرابط اعلاه .. حقيقي اي لم تتم اعادة كتابته .. وجميع هذه المجلدات موجود

هل توجد امكانية لكتابة الرابط بهذا الشكل:

يعني يكون الجزء الأخير مرن تماماً واكتب به الاسم الذي اريده

هل توجد امكانية لعمله؟

وشكراً للجميع


التعليق السابق
xTiGeRz أضف ردا

للأسف أخي لم لعمل معى .. وانت كتبت كود ل php والمطلوب ل mp4 إي ملف ثابت وليس داينمك

حتى اوضح لك قصدي .. الفيديوهات عندي تنتج ب 4 جودات 1080p 720p 480p 360p

واخزن في الداتابين ال timestamp و md5 id حتى اصل للملف بسهولة

شكل الروابط كالتالي:

الروابط السابقة هي الجودات للفيديو الواحد .. لها نفس المجلد الأب والأختلاف في اسم الفيديو حسب الجودة

اي المسارات حقيقة .. وبدون filename الفيديو يعمل طبيعي ..

عند اضافة filename يتم وضع http header الخاص بإجبار المتصفح على التنزيل attachment

والتنزيل في الجوال لسوء الحظ لا يعير للهدرز أي بال .. ويقوم بتنزيل حسب الاسم الأخير في الرابط في حالتي

720p.mp4 480p.mp4 الخ ..

لذلك انا اطمح لأحد حلين اما ان تكتب قيمة filename بعد رابط الفيديو الحقيقي واعتقد انها مستحيله ولكن لست متأكد .. بالشكل التالي:

او الطريقة الأخرى .. ان يتم وضع اسم الملف الحقيقي في GET Query ويتم اعدة كتابة الرابط مع filename بالشكل التالي:

ان شاء الله اكون قد وفقت في شرح مقصدي .. واتمنى منك مساعدتي :)

بحثت كثيراً كثيراً كثيراً ولم اجد احد مشكلته مشابهة لمشكلتي :(

شكرا لك

هل صيغة جميع المقاطع mp4 ؟

xlmnxp أضف ردا

قم بتحرير الملف default.conf في المسار /etc/nginx/conf.d (بصلاحية المالك Root)

sudo nano /etc/nginx/conf.d/default.conf

ثم اضف بداخلة الكود التالي

# nginx configuration
server{
  location /f {
    rewrite ^/f/videos/(\d+)/(.*)/(.*)/(.+)$ /videos/$1/$2/$3.mp4?filename=$4 break;
  }
}

واحفظه وقم بإعدات تشغيل الـ ngnix باستخدم الامر التالي ( بصلاحية المالك Root )

sudo service nginx reload