Idan
30 يناير 2021، 4:50م
1
أنا أقوم بتحرير ملف nginx.conf. أريد إعادة توجيه جميع صفحات domain1.com إلى domain2.com .
كيف يمكنني تعديل الملف لجعله يعمل؟
أرى سطرًا:
if($http_host != domain1.com){
rewrite (.*) https://domain1.com$1 permanent;
}
إذا قمت بتغييره إلى ‘=’ في جملة الشرط if وقمت بتعديل إعادة التوجيه إلى النطاق الجديد، هل سيؤدي ذلك إلى العمل أم أنني بحاجة إلى التأكد من تغيير أشياء أخرى؟
مثال:
if($http_host = domain1.com){
rewrite (.*) https://domain2.com$1 permanent;
}
بشكل عام، أقوم بتكوينه على النحو التالي:
server {
listen 80;
server_name domain1.com;
return 301 https://domain2.com$request_uri;
}
يمكن تعديل التوجيه أعلاه بعدة طرق لتناسب احتياجاتك بشكل أفضل.
Idan
30 يناير 2021، 7:04م
3
شكرًا لك، لدي بعض الأسئلة.
لدي الأسطر التالية في ملف الإعدادات:
server {
listen 80
return 301 https://domain1.com$request_uri
}
لا أعرف سبب وجود كود 301 افتراضيًا. هل يجب عليّ استبداله أم إنشاء واحد جديد فوقه أو تحته (كما قدمته لك)؟ هل server_name ضروري؟
هل سيؤدي ذلك إلى تعطيل عملية تجديد شهادات Let’s Encrypt إذا قمت بإعادة توجيه كل شيء؟
هل تقوم بتحرير ملف nginx.conf داخل حاوية discourse أم عبر وكيل عكسي خارجي؟
إذا كان داخليًا، فيجب عليك بدلاً من ذلك القيام بذلك في ملف app.yml. هناك أمثلة متعددة توضح كيفية القيام بذلك.
أما إذا كنت تقوم بذلك عبر وكيل عكسي خارجي، فيمكنك إنشاء ملف جديد باسم redirect.conf في مجلد /etc/nginx/conf.d مع استخدام مثال التكوين الذي قدمته.
Idan
30 يناير 2021، 7:17م
5
داخل الحاوية. سأبحث عن حلول لملف app.yml. لقد رأيت حلاً للمجلد، وآمل أن أجد حلاً لتغيير النطاق. شكرًا لك.
Idan
30 يناير 2021، 7:52م
7
نعم، سيتم تنفيذه قريبًا. شكرًا جزيلاً لك على وقتك.
Idan
30 يناير 2021، 8:40م
8
@itsbhanusharma أنا أقوم بتنفيذ الكود الآن. سؤالي هو هل سيقوم LetsEncrypt بتجديد نفسه ذاتيًا بينما أخطط لإبقاء الخادم القديم لبعض الوقت حتى تقوم Google بتغيير عناوين URL؟ هل هناك أي شيء أحتاج لإضافته لضمان عدم فشل تجديد LetsEncrypt بسبب تغيير إعادة التوجيه 301 هذا؟
هل يمكن أن يعمل هذا Set up Let’s Encrypt with multiple domains / redirects
أريد استثناء .well-known/acme-challenge من إعادة التوجيه،
مشكلة تتعلق بإعادة التوجيه 301 و LetsEncrypt