المسار المطلق والنسبي للملفات. المسارات النسبية والمطلقة في HTML وPHP

07.07.2019

في هذا البرنامج التعليمي، سنشرح للمبتدئين ما هو المسار المطلق والنسبي للملف، وفي هذه الحالة أيضًا أيهما أفضل للاستخدام. إذا كنت على دراية بهذا الموضوع بالفعل، فيمكنك الانتقال إلى الدرس التالي.

لذلك، لنبدأ بتعريف مصطلح "المسار" نفسه:

المسار (مسار المهندس) - مجموعة من الأحرف توضح موقع الملف في نظام الملفات وعنوان الدليل.

ويكيبيديا

إذا تحدثنا عن المواقع، فإن المسار هو نفس الرابط. الروابط يمكن أن تكون مطلقة أو نسبية. دعونا نلقي نظرة على كلا الخيارين بمزيد من التفصيل.

ما هو مسار الملف المطلق

https://www.google.com/images/branding/googlelogo.png

يمكن استخدام المسار المطلق في CSS. على سبيل المثال، لتعيين صورة كخلفية، يمكنك أخذ عنوان URL المطلق لملف الصورة وتحديده في ورقة الأنماط:

صورة الخلفية: url(http://www.example.com/img/bg.png);

ما هو مسار الملف النسبي

مع العنوان النسبي، كل شيء أكثر إثارة للاهتمام - يمكن حسابه من جذر الموقع ومن المستند الحالي. المسار النسبي الجذر- هذا هو المسار الذي يشير إلى موقع الملف بالنسبة إلى الدليل الجذر للموقع. في هذه الحالة، لا يحتوي العنوان على بروتوكول ولا اسم مجال، ويبدأ بشرطة مائلة / ، مما يشير إلى المجلد الجذر. يبدو هذا العنوان كما يلي:

صورة الخلفية: url(/img/bg.png);

كيفية تحديد العنوان النسبي الجذر بسهولة؟ ما عليك سوى أخذ رابط مطلق وإزالة البروتوكول واسم المجال منه، مع ترك الشرطة المائلة وجميع الأحرف التي تأتي بعدها.

مسار الملف النسبي من المستندهو المسار إلى الملف المتعلق بالمستند الحالي. يعتمد هذا العنوان على موقع الملف الذي تم كتابته فيه. لذلك، عندما يتم تحديد رابط نسبي في ورقة أنماط، فإنه يحسب مسار الملف بناءً على ورقة الأنماط، بدلاً من صفحة الويب الحالية أو المجلد الجذر. دعونا نعطي بعض الأمثلة.

المثال الأول

إذا كانت ورقة الأنماط style.css وملف صورة الخلفية bg.png موجودين في نفس المجلد (وليس بالضرورة الجذر)، فسيبدو المسار النسبي من الجدول إلى الصورة كما يلي:

صورة الخلفية: url(bg.png); /* فقط اكتب اسم الملف */

المثال الثاني

إذا كانت ورقة الأنماط في الجذر وكانت الصورة في مجلد img، فسيكون الرابط النسبي كما يلي:

صورة الخلفية: url(img/bg.png); /* لا حاجة لشرطة مائلة للبادئة */

المثال الثالث

إذا كانت ورقة الأنماط موجودة في مجلد، وكانت الصورة مجاورة لهذا المجلد، فسيكون المسار النسبي كما يلي:

صورة الخلفية: url(../bg.png); /* نقطتان - اصعد مستوى واحد */

المثال الرابع

إذا كانت ورقة الأنماط موجودة في مجلدين، وكان الرسم مجاورًا للمجلد الأول، فسيكون المسار النسبي كما يلي:

صورة الخلفية: url(../../bg.png); /* الصعود إلى مستويين */

النقطتان والشرطة المائلة في بداية المسار النسبي تعني الصعود بمستوى واحد. اعتمادا على عدد المستويات (الأدلة) التي تحتاج إلى الصعود إليها، تحتاج إلى إدخال العدد المطلوب من النقاط بخطوط مائلة. على سبيل المثال، إذا لم تكن ورقة الأنماط موجودة في مجلدين، بل في أربعة مجلدات، فسيكون الإدخال وفقًا لذلك كما يلي:

صورة الخلفية: url(../../../../bg.png);

في حالة إخفاء الصورة في مجلد img، وإخفاء ورقة الأنماط في مجلد css، ستحتاج إلى الخروج من مجلد css والانتقال إلى مجلد img. مثله:

صورة الخلفية: url(../img/bg.png);

إذا كان هناك عدة مجلدات، فيجب عليك أيضًا تسجيلها. دعنا نغير المثال السابق: تخيل أنه يوجد في مجلد img مجلد خلفيات آخر، والذي يحتوي على الرسم الخاص بنا. سيكون المسار النسبي مثل هذا:

صورة الخلفية: url(../img/backgrounds/bg.png);

أي طريقة هي الأفضل للاستخدام

عنوان الارتباط المطلقستحتاج إلى استخدامه إذا كان الملف الذي ترتبط به موجودًا على موقع آخر. داخل موقع واحد، لا يتم استخدام المسار المطلق عمليا (على الرغم من أنه سيعمل). ويرجع ذلك إلى عدة نقاط: أولا، يمكن أن تكون هذه الروابط مرهقة للغاية، وثانيا، إذا تغير اسم المجال، فستنشأ مشكلة - ستؤدي جميع الروابط إلى المجال القديم، مما قد يؤدي إلى العديد من الأخطاء والروابط المعطلة.

المسار النسبي الجذرسيعمل على خادم ويب، لكنه عديم الفائدة عند التطوير على جهاز كمبيوتر محلي. لكن ميزة هذا النوع من الروابط هي أنه يمكنك نقل ورقة الأنماط الخاصة بك إلى أي مجلد على الموقع وعدم الخوف من كسر عناوين URL لصور الخلفية.

المسار النسبي من المستند- الخيار الأفضل لتطوير الويب على جهاز محلي دون استخدام خادم. في المتصفح، ستتمكن من عرض صفحات الويب المخزنة على جهاز الكمبيوتر الخاص بك بشكل طبيعي، وستعمل عناوين الملفات. سيعملون على موقع مباشر، ولكن بشرط واحد - إذا لم تقم بنقل ورقة الأنماط إلى مكان آخر (وإلا فسيتعين عليك ضبط المسارات).

حاول التدرب على استخدام المسارات النسبية على جهاز الكمبيوتر المحلي وعلى خادم الويب الخاص بك. من المؤكد أن فهم كيفية عمل هذا سيكون مفيدًا لك في أي مشروع.

مزيد من المعلومات في البرنامج التعليمي:خاصية تكرار الخلفية - تتحكم في تكرار صورة الخلفية.

المسارات المطلقة


في هذه الحالة، كل شيء بسيط للغاية، نشير إلى المسار المباشر إلى الملف الموجود في مجال آخر. من الممكن تحديد مسار مختصر باستخدام شرطتين مائلتين في البداية دون تحديد http أو https بشكل صريح، وسيقوم الخادم نفسه باستبدال البروتوكول المطلوب (الامتداد) وفقًا لإعدادات الخادم. ومن المهم ملاحظة أن هذا العرض ضروري للتنقل بين المواقع:
http://google.com

نسبة إلى جذر الموقع


في هذه الحالة، يأخذ المتصفح نطاق الموقع ويستبدل به الرابط المحدد. في هذه الحالة سوف تعمل http://site/css/style.css.في حالة http، لا داعي للقلق بشأن https، لأنه سيتم أخذه بالشكل الذي تكون فيه الصفحة مفتوحة حاليًا، أي أنه مع http سيكون http. كما أنه مناسب جدًا لنقل وظائف معينة بين مواقع مختلفة أو نقل موقع من مجال إلى آخر دون لمس الرمز. طريقة ذات أولوية لتحديد المسارات إلى الصفحات والملفات.

فيما يتعلق بهذه الصفحة


طريقة أقل شيوعًا، لأنها تأخذ الصفحة الحالية وتضيف عنوانًا جديدًا إلى مسارها ..com/trick/css/style.css . يكاد يكون من المستحيل استخدامه في الحالات التي نستخدم فيها CNC.

باستخدام العلامة الأساسية


في هذه الحالة، بدلاً من استبدال المجال القياسي، سيتم استبدال المسار من القاعدة بالمسار النسبي. أي أننا سنتلقى ملفًا يقع:
http://site/tricks/css/style.css

المسارات النسبية والمطلقة في PHP

كل شيء بسيط للغاية، عند العمل في نظام الملفات، سنلتزم بقواعد العمل مع المسارات في PHP. إذا قمنا بتمرير الأمر إلى متصفح العميل، فسيتم استخدام مسارات HTML. أي أننا في المثال التالي نمرر من PHP المسار إلى المتصفح الذي يحتوي على الصفحة التي يجب الانتقال إليها. يمكن رؤية حقيقة قيام المتصفح بالانتقال بين الصفحات في شريط العناوين:
header("الموقع: /page2.php");
لذلك، نفتح الصفحة page1.php، ويتم كتابة page2.php في شريط العناوين، والنقطة الأساسية هي أن المتصفح قام أولاً بتحميل الصفحة page1.php، ثم تلقى المعلومات مع إعادة التوجيه وقام بتحميل الصفحة الثانية page2.php. في هذه الحالة، كانت إعادة التوجيه من جانب العميل (المتصفح)، مما يعني أننا نستخدم القواعد المتعلقة بـ HTML (عنوان الويب).

المسار المطلق في PHP

يتم التعامل مع المسار المطلق في PHP على أنه مسار مطلق من الدليل المثبت عليه خادم الويب. ويمكن الحصول على هذا المسار من:
$_SERVER["DOCUMENT_ROOT"]
إذا أخذنا هذا الخادم كمثال فإن مساره هو: /home/school/public_html/schoolphp، مما يعني أنه لكي تحدد المسار الكامل للصورة “/photo/img1.jpg”، عليك تحديد ما يلي طريق:
getimagesize("/home/school/public_html/schoolphp/photo/img1.jpg"); getimagesize($_SERVER["DOCUMENT_ROOT"]."/photo/img1.jpg");
أود أن أشير إلى أنه يمكن وضع الموقع في دليل فرعي، أي:
http://الموقع/المنتدى/
قد يكون من الصعب للغاية استخدام DOCUMENT_ROOT، لأن المنتدى (كبرنامج نصي خارجي) لا يعرف بعد مكان وجوده على الموقع. هناك عدة طرق للتعامل مع هذه المشكلة، دعنا نذكر بعضها:

1) إنشاء صفحة كمجال فرعي.

2) اكتب المسار المطلق في ملف config.php، وهو:
النواة::$ROOT = $_SERVER["DOCUMENT_ROOT"]; getimagesize(Core::$ROOT."/photo/img1.jpg"); // استخدم المسار المطلق الذي يمكن تعديله
يمكنك الآن ربط موقعك بالكامل بـ Core::$ROOT دون أي ندم، وإذا كنت بحاجة عن طريق الخطأ إلى تغيير المسار إلى الملف المضمن، فيمكنك تجاوز قيمة Core::$ROOT;

نسبة إلى ملف البداية (القاعدة)

يوجد في العديد من أنظمة Index.php نقطة إدخال واحدة، أي يتم فتح ملف Index.php، ويتم توصيل الملفات الأخرى منه.
تشمل "./modules/allpages.php"؛
في هذه الحالة، سيتم ربط allpages.php على طول المسار: /home/school/public_html/schoolphp/modules/allpages.php. هذه الطريقة ملائمة لأنه إذا كتبت تضمين في ملف allpages.php: include "./modules/module/page.php"؛، فسيظل البحث عنه بالنسبة إلى نقطة الإدخال، وهي Index.php:
/home/school/public_html/schoolphp/modules/module/page.php
يعد هذا تطبيقًا مناسبًا إلى حد ما نظرًا لأننا نعرف بوضوح بنية تطبيقنا بالنسبة إلى ملف Index.php الجذر. حتى لو قمنا باستدعاء أي ملف آخر وليس ملف Index.php، فستعمل المسارات بنفس الطريقة تمامًا. قمنا بتسمية dir.php مما يعني أن المسارات ستُتخذ نسبةً إلى ملف dir.php!

ماذا تحتاج إلى معرفته؟

لا يسعني إلا أن أذكر أولئك الذين نسوا أو أقترح على أولئك الذين لا يعرفون أنه يمكنك العودة ليس فقط إلى عمق الأدلة، ولكن أيضًا إلى أعلى (إرجاع المجلدات)، وصياغتها بسيطة للغاية:
تضمين "../file.php"؛
في هذه الحالة، سيتم أخذ دليل هذا الملف أو ملف Index.php الجذري وإرجاع مجلد واحد مرة أخرى، حيث سيتم البحث في الملف "file.php".

DOCUMENT_ROOT ليس الخيار الوحيد للحصول على المسار الجذر للموقع. دعونا نلقي نظرة على الدليل: "الدليل الجذر للمستند الذي يتم تنفيذ البرنامج النصي الحالي فيه هو بالضبط الدليل المحدد في ملف تكوين الخادم." . وهذا يعني أنه إذا تم كتابة المسار بشكل غير صحيح في ملف التكوين، فلن يعمل الموقع بأكمله. ما يجب القيام به؟ يمكنك الكتابة إلى مسؤولي ومالكي الاستضافة التي تستضيف الخادم على أمل أن يقوموا بتصحيح عيوبهم. أو ابحث عن بديل مستقر، وهو __DIR__، وهو المسار المطلق للملف المحدد حيث يتم تشغيل الكود. لنفترض أن لدينا ملف تكوين في مجلد التكوين، وبالتالي باستخدام __DIR__ لا يتعين علينا العودة إلى مجلد واحد إلى الأعلى في كل مرة عن طريق كتابة __DIR__"/../" يمكننا كتابة __DIR__ بأمان في المتغير الخاص بنا، في المثال أدناه كتبته في خاصية فئة (الدرس رقم 24، من لم يفهمه، استخدم متغيرًا عاديًا):
النواة::$ROOT = __DIR__; // أو لـ PHP القديم - dirname(__FILE__);
أردت أيضًا أن أذكرك بشيء مثير للاهتمام ومهم. وفقًا للأمان، يحظر خادم الويب التنقل عبر الأدلة الموجودة فوق جذر الموقع. أي أن الموقع يقع على المسار التالي: /home/school/public_html/schoolphp، ولكن محتويات مجلدات /home أو /home/school لن تكون متاحة للقراءة.

هل يمكن لـ PHP استخدام مسارات HTML؟ نعم، في وظائف خاصة، على سبيل المثال:
file_get_contets("http://site");

يمارس

في مشاريعي القديمة استخدمت DOCUMENT_ROOT، والآن قمت بالتبديل إلى مسارات Index.php النسبية "./folder/file".

يستخدم Zend2، وهو منتج من مطوري PHP، وهو أحد أكثر إطارات العمل تعقيدًا في الوقت الحالي، أيضًا مسارات نسبية ذات بناء جملة مختلف عني، أي "مجلد/ملف".

يستخدم منتدى IPB.3 dirname(__FILE__).

الاستنتاجات:

1) في HTML نستخدم المسارات المتعلقة بجذر الموقع، وهي "/file.php" (يبدأ السطر بـ خفض).
2) في PHP نستخدم نسبة إلى الملف الجذر "./file.php" (يبدأ السطر بـ نقطة وشرطة مائلة)، سيكون البديل هو استخدام خاصية تمت تهيئتها في الجذر: __DIR__؛
3) تستخدم إعادة توجيه الرأس مسارات من HTML. PHP تعمل مع نظام الملفات (ربط الملفات وحفظ الصور وتحريرها) - مع مسارات PHP.

في هذا الفصل سنتحدث معكم عن مسارات الروابط التي نكتب فيها سمة HREF.
كل ما نعرفه في الوقت الحالي هو مجرد القالب:
مِرسَاة
هذه المعرفة كافية للمبتدئين، ولكنها ليست للمحترفين الذين يقومون بمشروع كبير!!! بعد كل شيء، في المشاريع الكبيرة هناك أقسام تحتاج إلى الانتقال إليها والخروج منها... ثم تطرح الأسئلة: كيف نفعل ذلك وكيف نفعل ذلك بشكل صحيح؟

لتسهيل التعلم، لنقم بإنشاء موقع ويب لبطاقة العمل مكون من ثلاث صفحات. نظرًا لأن ملف Index.html الخاص بنا لا يقدم أي قيمة لنا حتى الآن، فسنقوم بتحريره واستخدامه:

تطوير الموقع عرضنا
لدينا اتصالات



بعد ذلك، لنقم بإنشاء ملف delo.html، والتي سنخبرك فيها عن خدماتنا: خدماتنا الصفحة الرئيسية
لدينا اتصالات



لنقم أيضًا بإنشاء ملف contact.html، لتتصل بنا: تعليق الصفحة الرئيسية
عرضنا



الآن دعونا ننظر (يفتح في علامة تبويب جديدة) إلى ما حصلنا عليه.

مع هذه الأمثلة أردت أن أظهر أن كل شيء يعمل. ولكن شيء واحد كبير لكن، نصل إلى الملفات مباشرة، لكن المسارات غير مرئية...
هذا ما هو عليه مسار نسبي، أي. المسار مرتبط بالملف المرجعي، لكن المسار نفسه غير مرئي، لأن جميع ملفاتنا موجودة في نفس الدليل (المجلد).
لنقم بإنشاء مجلد آخر في مجلد التدريب الخاص بنا (my_site) بالاسم razdelوفيه سوف نقوم بإنشاء ملف جديد بالاسم Index.html. في هذه الحالة، كيف يمكننا وضع رابط من ملفاتنا التي أنشأناها أعلاه؟
رازديل/ Index.html">القسم
وإذا كان في مجلد razdelأنشئ مجلد القسم الفرعيفسيكون المسار بالفعل من المجلد الجذر:
رازديل/سوبدرازديل/ Index.html">القسم الفرعي
ومن المجلد razdel
سودرازديل/ Index.html">القسم الفرعي
يرجى ملاحظة أن الفاصل بين المجلدات و/أو الملفات هو عبارة عن دفقة أمامية.

لقد تعلمنا كيفية إدخال المجلدات، والآن دعونا نرى كيفية الخروج:
للخروج من مجلد podrazdel إلى razdel، تحتاج إلى إضافة ../ ، هذه المجموعة من الأحرف تخبر المتصفح أن الملف المطلوب أعلى بمستوى واحد:
../index.html" >العودة إلى القسم
للعودة إلى المستويين نكتب هذه المجموعة مرتين:
../../ Index.html">الرجوع إلى جذر الموقع

الآن أقترح أن ننظر إلى المسارات المطلقة. المسار المطلقهذا هو مسار الملف بما في ذلك اسم الموقع والبروتوكول (http أو https). دعونا نتخيل أن مجلدنا موقعيوهناك جذر الموقع، واسم الموقع هو my_site.ru، في هذه الحالة سيكون المسار المطلق:
http://my_site.ruأو http://my_site.ru/أو http://my_site.ru/index.html
حيث أن المسار المطلق للمجلد razdel
http://my_site.ru/razdelأو http://my_site.ru/razdel/أو http://my_site.ru/razdel/index.html

ما هي المسارات الأفضل للاستخدام؟ مطلق!!! لكن هناك احتمالية لحدوث أخطاء، لأن هذه الروابط تشير إلى موقع معين ومحليا (بدون خادم) لن نتمكن من إزالة هذه الأخطاء...

ومرة أخرى، حول الصفحة الرئيسية، لا تضع رابطًا إلى my_site.ru، لأن المتصفح سيظل يعيد التوجيه إلى my_site.ru/، أي أن عملية إعادة التوجيه تحدث، ومحركات البحث لا تحب عمليات إعادة التوجيه حقًا.
أيضًا، لا تضع الرابط أبدًا my_site.ru/index.html، لأنه هذه نسخة مكررة لـ my_site.ru/ ومن وجهة نظر محركات البحث هاتان صفحتان مختلفتان، وفي هذه الحالة يوجد تكرار للمحتوى، وهذا لا تحترمه محركات البحث. لذا فإن الرابط الصحيح للرابط المطلق هو: my_site.ru/، وللرابط النسبي من مجلد واحد: / أو النزول: ../ . وإذا كنت تستخدم المسارات المطلقة، فأنت بحاجة إلى تحديد كيفية كتابة العنوان (مع أو بدون www)، كل شيء بسيط هنا أيضًا، إذا كان لديك خادم شخصي (مخصص)، ثم بدونه، وإذا استأجرت جزءًا فقط من الخادم، ثم مع شبكة الاتصالات العالمية .

يمكن أن يكون عنوان الارتباط مطلقًا أو نسبيًا. يجب أن تبدأ العناوين المطلقة بالبروتوكول (عادةً http://) وتحتوي على اسم الموقع. تعتمد الروابط النسبية على جذر الموقع أو المستند الحالي.

يوضح المثال 8.2 كيفية إنشاء رابط مطلق لموقع آخر.

مثال 8.2. استخدام المراجع المطلقة

العنوان المطلق

تعلم HTML



عند تحديد دليل موقع كارتباط (على سبيل المثال، http://site/css/)، يتم عرض ملف الفهرس. هذا هو الملف الذي يتم تحميله افتراضيًا عند الوصول إلى الدليل دون تحديد اسم الملف بشكل صريح. عادةً ما يكون ملف الفهرس عبارة عن مستند يسمى Index.html.

تُستخدم الروابط المطلقة عادةً للإشارة إلى مستند موجود على مورد شبكة آخر، ومع ذلك، من الممكن أيضًا إنشاء روابط مطلقة داخل الموقع الحالي. ومع ذلك، لا يتم ممارسة هذا في كثير من الأحيان، لأن هذه الروابط طويلة جدًا ومرهقة. ولذلك، يتم استخدام الروابط النسبية في الغالب داخل الموقع.

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

عند إنشاء روابط نسبية، عليك أن تفهم القيمة التي يجب عليك تحديدها للسمة href، لأنها تعتمد على الموقع الأصلي للملفات. دعونا نلقي نظرة على بعض الخيارات النموذجية.

1. توجد الملفات في مجلد واحد (الشكل 8.4).

تم أخذ اسم الملف هذا كعينة فقط على الموقع، ولا ينبغي استخدام الأحرف الروسية ذات المسافات في أسماء الملفات، وحتى في حالات مختلفة.

2. يتم وضع الملفات في مجلدات مختلفة (الشكل 8.5).

عندما يتم تخزين المستند المصدر في مجلد واحد، ويكون المستند المرتبط في جذر الموقع، فيجب وضع نقطتين وشرطة مائلة (/) قبل اسم الملف في عنوان الارتباط، كما هو موضح أدناه.

النقطتان في هذه الحالة تعني ترك المجلد الحالي إلى مستوى أعلى.

3. يتم وضع الملفات في مجلدات مختلفة (الشكل 8.6).

الآن الملف المصدر موجود في مجلدين فرعيين، ومن أجل الارتباط بالمستند في جذر الموقع، تحتاج إلى تكرار المثال السابق مرتين.

وصلة

الوضع مشابه مع أي عدد من المجلدات الفرعية.

4. يتم وضع الملفات في مجلدات مختلفة (الشكل 8.7).

الآن يتغير الوضع، الملف المصدر موجود في جذر الموقع، والملف الذي تحتاج إلى الارتباط به موجود في المجلد. في هذه الحالة، سيكون المسار إلى الملف كما يلي.

وصلة

لاحظ أنه لا توجد نقاط أو خطوط مائلة إضافية قبل اسم المجلد. إذا كان الملف موجودًا داخل مجلدين وليس واحدًا، فسيتم كتابة المسار إليه بهذه الطريقة.

وصلة

الروابط المتعلقة بجذر الموقع

في بعض الأحيان يمكنك العثور على المسار إلى الملف بالنسبة إلى جذر الموقع، على ما يبدو "/اسم المجلد/الملف"مع شرطة مائلة في البداية. نعم سجل الدوراتيعني أن الرابط يؤدي إلى مجلد اسمه الدورة، وهو موجود في جذر الموقع، وفيه تحتاج إلى تنزيل ملف الفهرس.

يرجى ملاحظة أن هذا النوع من التسجيل لا يعمل على جهاز كمبيوتر محلي، ولكن فقط تحت سيطرة خادم الويب.

01/11/07 44.5 ألف

كما تعلم، في معلمة href للعلامة () يجب عليك تحديد المسار إلى الملف المشار إليه.
يكتب العديد من الأشخاص شيئًا مثل http://somesite.ru/catalog/doc.html. نعم، لا أحد يجادل، أنه يعمل. ولكن هناك واحد "لكن". لنلقي نظرة على مثال.

ليكن موقعك مستضافا مثلا على بعض الاستضافة المجانية وكان عنوانه كالتالي: http://fsite.freehosting.ru.
هناك حوالي 100 وثيقة على الخادم. ولذا قررت نقل موقع الويب الخاص بك إلى نطاق آخر،
دعها تكون مدفوعة الأجر في منطقة ru: http://site.ru. حسنًا، هل يجب علينا الآن تغيير http://fsite.freehosting.ru إلى http://site.ru في كل مكان؟
نعم، بفضل المحررين مثل homesite، هذا ممكن. لكن هذا ليس حلا.
لنفترض أنه قبل تحميل الصفحة إلى الخادم، عليك التحقق من وظائفها
على خادم Apache المنزلي الخاص بك (بالنسبة لأولئك الذين لا يعرفون بعد ما هو "الخادم المنزلي"، انتقل إلى هنا (تثبيت وتكوين خادم Apache)، وبدلاً من http://localhost، ستحتاج إلى كتابة http:// site.ru أتفق مع هذا في كل مكان، على الأقل أنه غير مريح.

الحل هو، عند تحديد المسار إلى الملف، أن تأخذ في الاعتبار ليس موقعه على الموقع، ولكن موقعه على الخادم.

المسار المطلق

لنأخذ على سبيل المثال الملف doc.html الموجود على: http://somesite.ru/catalog/doc.html. كما تعلم، يوجد مجلد www على الخادم. كما نرى من العنوان، يحتوي هذا المجلد على مجلد الكتالوج، وهو يحتوي بالفعل على ملف doc.html.

إذا قمت، عند تحديد المسار إلى ملف، بوضع / قبل العنوان، فسيكون مشابهًا لما يلي: root_directory_in_the_north/www/path إلى الملف.
أي أن http://somesite.ru/catalog/doc.html يشبه ما يلي: /catalog/doc.html.
لذلك، عندما يكون هناك / أمام العنوان، فهذا يعني أن "العد التنازلي" يبدأ من دليل www.
الآن، بدلاً من http://localhost/index.html، يمكنك كتابة /index.html من أي مستند.
لكن للوصول إلى دليل cgi عليك أن تكتب بهذا الشكل: /cgi-bin/path إلى الملف.

تسمى المسارات التي تم إنشاؤها باستخدام الطرق الموضحة أعلاه مطلقة، لأنه تتم الإشارة إلى المسار المطلق (الكامل) للملف الموجود على الخادم.

مسار نسبي

هناك أيضًا مسارات نسبية يتم تحديدها بالنسبة للمستند نفسه الذي يأتي منه الرابط.
على سبيل المثال، إذا قمت بإنشاء رابط في doc.html newcat/new.html، فهذا يعني أن الملف new.html موجود في دليل newcat، والذي بدوره موجود في نفس الدليل مثل ملف doc.html. كما ترون، هذا المسار متعلق بالملف doc.html. أينما يوجد هذا الملف، سيكون المسار newcat/new.html صالحًا دائمًا إذا كان ملف doc.html ودليل newcat على نفس المستوى (أي في نفس الدليل).

يمكنك أيضًا نقل الدليل لأعلى بالنسبة للمستند. للقيام بذلك عليك أن تكتب ../.
على سبيل المثال، يوجد دليل كبير، يحتوي على دليلين: أساسي وثانوي. يحتوي الدليل الأساسي على ملف doc.html المألوف بالفعل؛ وفي الدليل الثانوي يوجد ملف new.html. لإنشاء رابط من ملف doc.html إلى ملف new.html، عليك كتابة ../ Secondary/new.html. ولكن إذا كان الدليل الكبير موجودًا في دليل www، فيمكن تحديد المسار إلى ملف new.html على النحو التالي: /big/ Secondary/new.html