إعداد توجيه الروابط لمواقعك في ServBay
توجيه الروابط هو العملية التي يتم فيها نقل الزوار تلقائيًا من عنوان URL إلى آخر. إعداد التوجيه في بيئة التطوير المحلية أمر أساسي لمحاكاة سلوك البيئة الحية (الإنتاجية)، وتجربة تغييرات هيكلية على الروابط، أو لضمان استمرار عمل الروابط القديمة أثناء تطوير إصدارات جديدة من الموقع. يقدم ServBay، كبيئة تطوير ويب قوية، إمكانيات سهلة لتكوين التوجيهات من خلال خوادم الويب المدمجة فيه (Caddy أو Nginx).
نظرة عامة
في ServBay، يدير كل موقع تقوم بإنشائه ملف إعدادات خادم ويب مستقل. يتم تنفيذ التوجيه من خلال تعديل ملف الإعدادات الخاص بهذا السيرفر. يدعم ServBay كلًا من Caddy وNginx كخوادم ويب، ويمكنك اختيار الأنسب لمشروعك أو تفضيلاتك الشخصية. عادة، يتطلب إعداد التوجيه تحديد نمط عنوان URL الأصلي، والوجهة المستهدفة، بالإضافة إلى نوع التوجيه (مثل 301 للتوجيه الدائم أو 302 المؤقت).
حالات الاستخدام
تتضمن سيناريوهات استخدام توجيه الروابط في ServBay أثناء التطوير المحلي ما يلي:
- محاكاة البيئة الإنتاجية: لضمان تطابق إعدادات التوجيه بين بيئتك المحلية والخادم الفعلي.
- اختبار HTTPS: فرض تحويل جميع طلبات HTTP إلى HTTPS لمحاكاة الاتصال الآمن.
- توحيد عناوين المواقع (URL canonicalization): تحويل النطاق مع
www
إلى النطاق بدونwww
أو العكس للحفاظ على الاتساق. - معالجة تغييرات بنية الروابط: إعادة توجيه الروابط القديمة إلى عناوينها الجديدة عند تغيير بنية أو مسارات صفحات الموقع لتجنب ظهور أخطاء "الصفحة غير موجودة" أثناء الاختبار.
- اختبار نقل النطاق: محاكاة تحويل نطاق قديم إلى نطاق جديد.
المتطلبات الأساسية
لتكوين توجيه الروابط في ServBay يجب أن تتوفر لديك:
- تثبيت ServBay وتشغيله بنجاح.
- إضافة الموقع وتكوينه داخل ServBay الذي تريد إعداد التوجيه له.
- المعرفة بما إذا كان موقعك يستخدم خادم Caddy أو Nginx.
طريقة الإعداد
يوفر ServBay ملف إعدادات خاص لكل موقع ويب. يمكنك الوصول إليه وتعديله بسهولة عن طريق واجهة المستخدم الرسومية (UI) الخاصة بـ ServBay.
الوصول إلى ملف إعدادات الموقع
- افتح تطبيق ServBay.
- من شريط التنقل الجانبي، اختر Website (المواقع).
- ابحث عن الموقع المراد تعديل توجيهاته، وانقر على اسمه للدخول إلى تفاصيل الموقع.
- في صفحة تفاصيل الموقع، ابحث واضغط على خيار "ملف الإعدادات" أو ما شابه (قد يختلف الاسم أو الموضع حسب إصدار ServBay)، لفتح ملف إعدادات خادم الويب لهذا الموقع.
بعد ذلك، اختر الطريقة بحسب نوع السيرفر الخاص بموقعك (Caddy أو Nginx)، واتبع الخطوات الملائمة أدناه.
التوجيه باستخدام Caddy
إذا كان خادم موقعك هو Caddy، فستقوم بالتعديل على ملف Caddyfile الخاص بالموقع. يتميز Caddyfile ببساطته وسهولة قراءته.
فيما يلي بعض أشهر أمثلة إعداد التوجيه في Caddy. أضف هذه الأوامر عادةً داخل كتل عنوان الموقع ({}
) في ملف Caddyfile.
المثال 1: توجيه HTTP إلى HTTPS
في الإعداد الافتراضي، يعالج Caddy توجيه HTTP إلى HTTPS تلقائيًا عند توفر شهادة SSL (سواء من ServBay User CA أو عن طريق ACME). ولكن إذا احتجت تحكمًا أدق، يمكنك استخدام تعليمة redirect
:
servbay.demo {
# ... إعدادات أخرى ...
# فرض تحويل كافة طلبات HTTP إلى HTTPS
# إذا كنت تستخدم ميزة SSL في ServBay، غالبًا لست بحاجة لإضافة هذا السطر يدويًا
# للتخصيص اليدوي، استخدم التالي:
redir http://servbay.demo https://servbay.demo{uri} permanent
# ... إعدادات أخرى ...
}
2
3
4
5
6
7
8
9
10
المثال 2: التوجيه من نطاق بدون www إلى نطاق مع www
لتحويل جميع طلبات servbay.demo
إلى www.servbay.demo
:
servbay.demo {
# توجيه دائم لجميع الطلبات إلى www.servbay.demo
redir https://www.servbay.demo{uri} permanent
}
www.servbay.demo {
# إعدادات الموقع المعتادة لـ www.servbay.demo
root * /Applications/ServBay/www/your-servbay-demo-site
file_server
# ... إعدادات أخرى ...
}
2
3
4
5
6
7
8
9
10
11
المثال 3: التوجيه من نطاق مع www إلى نطاق بدون www
لتحويل جميع طلبات www.servbay.demo
إلى servbay.demo
:
www.servbay.demo {
# توجيه دائم إلى servbay.demo مع الحفاظ على المسار
redir https://servbay.demo{uri} permanent
}
servbay.demo {
# إعدادات الموقع العادي لـ servbay.demo
root * /Applications/ServBay/www/your-servbay-demo-site
file_server
# ... إعدادات أخرى ...
}
2
3
4
5
6
7
8
9
10
11
المثال 4: توجيه إلى مسار محدد
لتحويل /old-path
إلى /new-path
:
servbay.demo {
# ... إعدادات أخرى ...
# توجيه دائم لـ /old-path إلى /new-path
redir /old-path /new-path permanent
# توجيه مؤقت لـ /deprecated/page.html إلى /new/page/
redir /deprecated/page.html /new/page/ temporary
# ... إعدادات أخرى ...
}
2
3
4
5
6
7
8
9
10
11
أنواع التوجيه في Caddy
permanent
: توجيه دائم (301) - مناسب للسيو.temporary
: توجيه مؤقت (302).internal
: إعادة كتابة داخلية بدون تغيير الرابط الظاهر (ليس توجيه HTTP حقيقي).
بعد تعديل ملف Caddyfile، احفظه. عادةً يقوم ServBay تلقائيًا بإعادة تحميل إعدادات Caddy أو يطلب منك ذلك لتطبيق التغييرات.
التوجيه باستخدام Nginx
إذا كان موقعك يستخدم Nginx، فعليك تعديل ملف إعدادات Nginx الخاص بالموقع (عادةً ذو امتداد .conf
). يستخدم Nginx أوامر return
أو rewrite
للتوجيه، بحيث return
أبسط وأفضل للتوجيهات الثابتة، أما rewrite
فهو للأكثر مرونة وتعقيدًا (يدعم regex).
فيما يلي بعض أشهر أمثلة التوجيه في Nginx. يتم وضع هذه الإعدادات غالبًا داخل كتلة server
في ملف .conf
الخاص بالموقع.
المثال 1: توجيه HTTP إلى HTTPS
إذا كان موقعك يستمع على كل من المنفذين 80 و443، أضف قاعدة التوجيه بداخل كتلة server
التي تستمع على المنفذ 80:
server {
listen 80;
listen [::]:80;
server_name servbay.demo www.servbay.demo;
# توجيه كل طلبات HTTP إلى HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name servbay.demo www.servbay.demo;
# ... بقية إعدادات الموقع لـ HTTPS ...
# ssl_certificate ...;
# ssl_certificate_key ...;
# المجلد الجذري وغيره
root /Applications/ServBay/www/your-servbay-demo-site;
index index.html index.htm index.php;
# ... كتل location أخرى ...
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
المثال 2: التوجيه من غير www إلى www
لتحويل servbay.demo
إلى www.servbay.demo
:
server {
listen 80;
listen [::]:80;
server_name servbay.demo; # يستمع للنطاق بدون www
# توجيه كل الطلبات إلى النطاق مع www مع الحفاظ على البروتوكول والمسار
return 301 $scheme://www.servbay.demo$request_uri;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.servbay.demo; # يستمع لـ www فقط
# ... إعدادات الموقع الطبيعي لـ www ...
# ssl_certificate ...;
# ssl_certificate_key ...;
root /Applications/ServBay/www/your-servbay-demo-site;
index index.html index.htm index.php;
# ...
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
المثال 3: التوجيه من www إلى غير www
لتحويل www.servbay.demo
إلى servbay.demo
:
server {
listen 80;
listen [::]:80;
server_name www.servbay.demo; # يستمع للنطاق مع www
# توجيه كل الطلبات إلى النطاق بدون www مع الحفاظ على البروتوكول والمسار
return 301 $scheme://servbay.demo$request_uri;
}
server {
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name servbay.demo; # يستمع بدون www
# ... إعدادات الموقع الطبيعي بدون www ...
# ssl_certificate ...;
# ssl_certificate_key ...;
root /Applications/ServBay/www/your-servbay-demo-site;
index index.html index.htm index.php;
# ...
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
المثال 4: توجيه لمسارات محددة (باستخدام location
وreturn
أو rewrite
)
لتحويل /old-path
إلى /new-path
:
server {
# ... إعدادات server أخرى ...
location = /old-path {
# تطابق دقيق مع /old-path وتوجيه دائم إلى /new-path
return 301 /new-path;
}
location /deprecated/ {
# تحويل كل ما هو تحت /deprecated/ بشكل مؤقت إلى /archive/
rewrite ^/deprecated/(.*)$ /archive/$1 temporary;
}
# ... كتل location أخرى ...
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
أنواع التوجيه في Nginx
301
: توجيه دائم.302
: توجيه مؤقت.redirect
: يكافئ 302.permanent
: يكافئ 301.
بعد تعديل ملف إعدادات Nginx، احفظ التغييرات. غالبًا يقوم ServBay تلقائيًا بإعادة تحميل إعدادات السيرفر أو يطلب منك ذلك.
ملاحظات هامة
- الاحتفاظ بنسخة احتياطية: من الأفضل دائمًا أخذ نسخة احتياطية من ملف الإعدادات قبل أي تعديل، لاستعادته في حالة حدوث خطأ.
- فحص صحة الإعدادات: تحقق من صحة التعديلات في ملف الإعدادات بعد كل تغيير عن طريق فحص الصيغة اللغوية (syntax). عادة يقوم ServBay بفحص بسيط عند الحفظ، لكن تحقق يدويًا أفضل، خاصة مع Nginx (يمكنك استخدام الأمر
nginx -t
لو كان متوفرًا في PATH أو عبر محطة ServBay). - اختبار التوجيه بشكل شامل: بعد وضع قواعد التوجيه، اختبر جميع الحالات الممكنة عبر المتصفح (مع وبدون www، HTTP وHTTPS، وأي مسارات خاصة)، لتتأكد من عمل التوجيهات كما هو متوقع.
- ذاكرة التخزين المؤقتة للمتصفح: المتصفح يحتفظ بنتائج التوجيهات الدائمة (301) في ذاكرته. لذا عند تعديل قاعدة 301 بشكل متكرر أثناء الاختبار قد تواجه مشاكل تكن Cache. يمكنك حينها مسح ذاكرة المتصفح أو استخدام الوضع الخفي/أدوات المطور وتعطيل الكاش مؤقتًا. في الاختبارات المؤقتة يفضل استخدام 302 ثم العودة إلى 301 بعد اعتماد التغييرات النهائية.
- إعادة تحميل الإعدادات في ServBay: بعد أي تعديل، تأكد من قيام ServBay بإعادة تحميل إعدادات خادم الويب بنجاح (غالبًا تلقائيًا أو عبر رسالة/زر في واجهة المستخدم).
الأسئلة الشائعة (FAQ)
س: قمت بإعداد توجيه في ملف الإعدادات لكن المتصفح لا ينقلني، ما السبب؟
ج: قد يكون أحد الأسباب التالية:
- خطأ في ملف الإعدادات: تحقق من صحة صيغة التعديلات في ملف الإعدادات، وتأكد من حفظ الملف بنجاح.
- لم يتم إعادة تحميل الإعدادات: تأكد أن ServBay قام بتطبيق التعديلات الجديدة.
- ذاكرة متصفح مخبأة: امسح كاش المتصفح أو جرب في نافذة تصفح خفي.
- مشكلة في مطابقة عنوان URL: تأكد من تطابق الروابط/المسارات في قاعدة التوجيه مع ما تزوره بالفعل.
س: ما الفرق بين توجيه 301 و302؟ وأيهم أستخدم أثناء التطوير؟
ج: توجيه 301 دائم ويُخبر كل من المتصفح ومحركات البحث بأن المورد انتقل نهائيًا لعناوين جديدة مما يدعم السيو. 302 مؤقت ويعني أن المورد انتقل مؤقتًا فقط. يفضل استخدام 302 أثناء التجربة الوجيزة أو أثناء التصحيح لأن المتصفح لا يخزنها، أما إذا أردت تجربة محاكاة نقل دائم (مثل نقل نطاق) استخدم 301.
س: قمت بتعديل ملف الإعدادات لكن ظهرت أخطاء أو توقف خادم الويب، ماذا أفعل؟
ج: غالبًا هناك خطأ في صياغة التعديلات. راجع بتأنٍّ الإعدادات الجديدة وقارنها بقواعد Caddyfile أو إعدادات Nginx. قد تجد مزيدًا من التفاصيل في سجلات ServBay حول الخطأ الوارد.
ملخص
يعد إعداد توجيه الروابط في ServBay ممارسة ضرورية وشائعة أثناء تطوير المواقع محليًا، وذلك من خلال تحرير إعدادات Caddy أو Nginx فقط. استيعاب قواعد التوجيه في كل خادم (redir
لـ Caddy وreturn
/rewrite
لـ Nginx) يجعلك أكثر إنتاجية في بيئة ServBay، خصوصًا لمحاكاة البيئة الحقيقية، أو اختبار HTTPS، أو عند تغيير بنية الروابط. بعد الإعداد، تحقق بدقة من نتائج التوجيه ولا تنس تأثير ذاكرة المتصفح خاصة مع 301.