كيف ترتب Concrete5 مساراتها المطلقة؟
-
26-09-2019 - |
سؤال
لقد طُلب مني معرفة كيفية عمل نظام Concrete5 مع صاحب العمل ، ولا يمكنني معرفة شيء ما.
لقد تم تثبيت Concrete5 على دليل على الخادم يسمى /realprofessionals
. عندما يصنع نظام Concrete5 صفحات جديدة ، فإنه يمنحهم مساراتهم المطلقة ، على سبيل المثال:
http://www.wmcpartners.com/realprofessionals/footer
ومع ذلك ، لم يصنع مجلد في /realprofessionals
دليل يسمى footer
. فكيف يتم ذلك؟ كيف يمكن http://www.wmcpartners.com/realprofessionals/footer كن رابط عمل؟
المحلول
اجابة قصيرة: جميع طلبات الصفحات تمر بالفعل من خلال ملف index.php الواحد والوحيد. يتم تخزين محتوى الصفحة في قاعدة البيانات ، وليس في الملفات الموجودة على الخادم.
اجابة طويلة:يعمل Concrete5 (ومعظم CMS المستندة إلى PHP لهذه المسألة) مثل هذا: يتم توجيه جميع الطلبات من خلال ملف INDEX.PHP. يتم فرض هذا التوجيه مع بعض قواعد mod_rewrite في ملف .htaccess. تقول القواعد "بالنسبة لأي طلب ، لا تذهب فعليًا إلى تلك الصفحة ، ولكن بدلاً من ذلك انتقل إلى index.php وتمرير بقية المسار المطلوب كمعلمات $ _get". ثم في رمز INDEX.PHP (أو بعض التعليمات البرمجية الأخرى التي يتم تضمينها بواسطة ملف INDEX.PHP) ، يتم تحديد الصفحة المطلوبة بناءً على المسار الذي تم وضعه في معلمات $ _GET بواسطة Apache (وفقًا لقاعدة Mod_Rewrite في. htaccess) ، والمحتوى المناسب يتم استرداده من قاعدة البيانات.
تخزين المحتوى في قاعدة البيانات بدلاً من الملفات الموجودة على الخادم له العديد من المزايا. على سبيل المثال ، يمكنك إعادة استخدام نفس قالب HTML-رأس ، تذييل ، الشريط الجانبي-في كل صفحة ، وإذا قمت بتغيير القالب ، فسوف ينعكس تلقائيًا في جميع الصفحات التي يتم استخدامها عليها. أيضًا ، يجعل من السهل خلط الصفحات حولها ومنحهم أي عنوان URL الذي تريده (على سبيل المثال لا ".php" في النهاية ، أو/2010/11/تاريخ/مسارات/لـ/المدونة/المنشورات).
العيب بالطبع هو أن كل طلب يتطلب العديد من استعلامات قاعدة البيانات ، ولكن بالنسبة لمعظم المواقع (تلك التي لا تحتوي على زيليون من طرق عرض الصفحة) ، فإن المقايضة تستحق ذلك (ويمكن أن تساعد أنواع التخزين المؤقت المختلفة في تقليل أداء الأداء).
نصائح أخرى
إجابة الأردن ممتازة ، أود أن أضيف أنك ربما لا ترى index.php في عنوان URL لأنك قمت بتمكينك عناوين URL جميلة (اكتب "Pretty" على مربع البحث في Concrete5 للتحقق من ذلك).
على أي حال ، فإن أفضل طريقة لإضافة رابط برمجي إلى الصفحات الداخلية هي:
<a href="<?=$this->url('page-name');?>">
page name
</a>
إنه يعمل على كل من مضيف محلي وعبر الإنترنت ، مع أو بدون عناوين URL جميلة.
(للحصول على اسم الصفحة ، انتقل إلى لوحة القيادة/خريطة Sitemap/اسم الصفحة الكاملة/الخصائص/مسارات الصفحة والموقع.)