كيف يكون CakePhP تسليم المحتوى على نطاق فرعي مختلف؟

StackOverflow https://stackoverflow.com/questions/3446003

  •  27-09-2019
  •  | 
  •  

سؤال

أقوم ببناء بوابة سيكون لها محتوى مختلف مدن ..

عندما يأتي شخص ما إلى موقع الويب ، أريده أن يختاروا المدينة ثم متابعة

ل

http://city1.site.com

أو

http://city2.site.com

هل يمكن القيام بذلك باستخدام قاعدة بيانات واحدة وتثبيت CakePhP؟

هل كانت مفيدة؟

المحلول

انه من الممكن.

في الأساس في DNS ، عليك السماح *.site.com باستضافة جهاز واحد. بهذه الطريقة ، بغض النظر عن النطاق الفرعي الذي تكتبه ، سيكون الجهاز هو نفسه.

مثال على سجل DNS:

*   A   10.0.0.1

ثم في إعلان المضيف الافتراضي عليك وضعه

<VirtualHost *>
        DocumentRoot /var/www/path_to_site
        ServerName site.com
        ServerAlias www.site.com *.site.com
</VirtualHost>

بهذه الطريقة بغض النظر عن ما تكتبه ، سيتم إعادة توجيه موقع ea.site.com أو city.site.com إلى تطبيق واحد.

ثم عليك فقط تحليل المضيف من PHP (ويفضل أن يكون في AppController) وتحويل النطاق الفرعي إلى التصفية.

إنه مجردة بعض الشيء ، لكن هكذا سأفعل ذلك.

تحرير (الرد على التعليق):إنها مسألة كيفية بناء النظام. في الأساس إذا كان لديك:

cite1.site.com

في AppController الخاص بك ، يمكنك الحصول على شيء مثل:

class AppController extends Controller {
  function beforeFilter(){
     $host = explode('.', $_SERVER["HTTP_HOST"]);
     $subdomain = $host[0];
     Configure::write('city', $subdomain);
     $this->City->getId($subdomain); //function in City model fetching City ID by city name
     ...
  }
}

لذلك ، بعد ذلك يعتمد ذلك على هيكل التطبيق الخاص بك وكيف تتعامل مع هذه المدينة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top