web-applications - ومواقع - عمل web application




كيفية جعل حسابات المستخدمين الفرعية في تطبيق ويب (3)

وإنني أتطلع إلى السماح للمستخدمين بالتحكم في نطاق فرعي من أحد التطبيقات التي أتعامل معها، تماما مثل customusername.seework.com حيث هو customusername.seework.com .

ما هو مطلوب على نهاية DNS للسماح لهذه أن تنشأ ديناميكيا وتكون متاحة على الفور.

وكيف توصي بتناول هذا في منطق الموقع؟ قاعدة Htaccess للبحث عن النطاق الفرعي في DB ؟


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


لا تقلق بشأن دنس وإعادة كتابة عناوين ورل

سيكون سجل نظام أسماء النطاقات ثابتا، مثل:

*.YOURDOMAIN.COM A 123.123.123.123

اطلب من موفر نظام أسماء النطاقات الخاص بك القيام بذلك نيابة عنك (إذا لم يتم فعل ذلك بالفعل) أو القيام بذلك بنفسك إذا كان لديك سيطرة على سجلات نظام أسماء النطاقات. سيؤدي هذا تلقائيا إلى توجيه جميع النطاقات الفرعية (الحالية والمستقبلية) إلى خادم هتب نفسه.

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

على افتراض أن كنت تستخدم ASP.NET، وهذا هو نوع من سخيفة سبيل المثال جاء مع ولكن يعمل ويوضح بساطة هذا النهج:

<%@ Language="C#" %>
<%
string subDomain = Request.Url.Host.Split('.')[0].ToUpper();
if (subDomain == "CLIENTXXX") Response.Write("Hello CLIENTXXX, your secret number is 33");
else if (subDomain == "CLIENTYYY") Response.Write("Hello CLIENTYYY, your secret number is 44");
else Response.Write(subDomain+" doesn't exist");
%>

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

مع أباتشي يمكنك إعداد مماثلة الصيد كل ل فوستس الخاص بك. يجب أن يكون سيرفيرنام اسم ثابت واحد ولكن التوجيه سيرفيرالياس يمكن أن يحتوي على نمط.

Servername www.ourdomain.com
ServerAlias *.ourdomain.com

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

list( $username ) = explode( ".", $_SERVER[ "HTTP_HOST" ] );

أو ريوريتيرول كما اقترح بالفعل أن بصمت خرائط user.ourdomain.com/foo/bar إلى www.ourdomain.com/foo/bar؟user=user أو ما كنت تفضل ذلك.





account