سؤال

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

على سبيل المثال إذا جاء المستخدم من المجالsiteusa.com بعد ذلك ، سيتم عرض المحتوى الذي يتم تصفيته وفقًا لذلك مستخدم محدد. إذا جاء المستخدم من siteuk.com/sitechina.com سيتم ترشيح المحتوى وفقًا لذلك ...

أخطط لفعل شيء كهذا للكشف عن عنوان URL وتقديم المحتوى

 $ref = getenv("HTTP_REFERER");
    echo $ref; 

مشكلة أخرى أراها هي إعداد BaseUrl لـ Codeigniter ، لكنني رأيت حلاً لذلك هنا

/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://www.your-site.com/
|
*/

if(isset($_SERVER['HTTP_HOST']))
{
$config['base_url'] = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ? 'https' : 'http';
$config['base_url'] .= '://'. $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']);
}

else
{
$config['base_url'] = 'http://localhost/';
}

هل هذه هي أفضل طريقة للقيام بذلك؟ هل هناك عنق الزجاجة المحتمل الذي قد أذهب إليه؟

سيقدم المجال الرئيسي للموقع محتوى غير مرشح وسيقوم كل مجال Addon بتصفيةه وفقًا لمرشح مرشح لكل مجال من الواجهة الخلفية.

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

المحلول

هل قواعد .htaccess خيار لك ربما؟ لاحظ أن CI لديه أيضًا ملف Routes.PhP للتحكم الدقيق في عناوين URL ، ولكن ليس على مستوى المجال على ما أعتقد.

نصائح أخرى

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

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

بالنسبة للتصفية ، فقط تأكد من أن لديك إعداد فهارس مناسب حيث ستحتاج إلى الاستعلام عن طريق متغير HTTP_HOST.

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