2008-08-04 12 views
21

मैं उपयोगकर्ताओं को उस ऐप के सबडोमेन को नियंत्रित करने की अनुमति देना चाहता हूं, जिसमें बेसकैम्प की तरह है, जहां यह customusername.seework.com है।वेबपैप में सबडोमेन उपयोगकर्ता खाते कैसे बनाएं

DNS पर क्या आवश्यक है ताकि इन्हें गतिशील रूप से बनाया जा सके और तत्काल उपलब्ध हो सके।

और साइट के तर्क में इससे निपटने की सलाह कैसे देते हैं? HtaccessDB में उपडोमेन को देखने के लिए नियम?

उत्तर

13

जिस तरह से हम यह करने के लिए एक 'पकड़ है सब 'हमारे डोमेन नाम के लिए DNS में पंजीकृत है ताकि कुछ भी हो .ourdomain.com हमारे सर्वर को इंगित करेगा।

अपाचे के साथ आप अपने vhosts के लिए एक समान कैच-अप सेट कर सकते हैं। सर्वरनाम एक स्थिर नाम होना चाहिए लेकिन सर्वरअलीस निर्देश में एक पैटर्न हो सकता है।

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

अब सभी डोमेन हमारी परियोजना के लिए vhost को ट्रिगर करेंगे। अंतिम भाग डोमेन नाम वास्तव में प्रयोग किया डिकोड करने के लिए, ताकि आप अपने कोड में उपयोगकर्ता नाम बाहर काम कर सकते हैं, (PHP) की तरह कुछ:

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

या एक फिर से लिखना के रूप में पहले से ही सुझाव दिया है कि चुपचाप नक्शे user.ourdomain.com/foo/bar www.ourdomain.com/foo/bar?user=user या जो कुछ भी आप पसंद करते हैं।

+0

आप आईआईएस पर समान कैच-सब कैसे सेट करते हैं – Vikram

2

कि करने के लिए चाल तो name.domain.com पारदर्शी रूप से अपने सर्वर पर domain.com/users/name की तरह कुछ करने के लिए नक्शे है कि पुनर्लेखन URL का उपयोग करने के लिए है। एक बार जब आप उस पथ को शुरू कर देते हैं, तो यह लागू करने के लिए काफी छोटा है।

+0

क्या परिणामस्वरूप पता बार में यूआरएल का रीडायरेक्ट और परिवर्तन होगा?मैं URL.domain.com पर रहने के लिए यूआरएल की तलाश में हूं डोमेन.com/username – parliament

+1

@parliament पर रीडायरेक्ट करने के लिए नहीं: इसे रीडायरेक्ट करने की आवश्यकता नहीं होगी, नहीं। पुनर्लेख पारदर्शी हो सकता है (उदाहरण के लिए आप जिस वर्डप्रेस साइट पर जाते हैं उसके पास दोस्ताना यूआरएल है, लेकिन अनुरोध वास्तव में index.php पर जा रहे हैं)। –

8

DNS और यूआरएल को फिर से लिखने

आपका DNS रिकॉर्ड स्थिर हो जाएगा के बारे में चिंता मत करो, कुछ की तरह:

*.YOURDOMAIN.COM A 123.123.123.123 

अपने DNS प्रदाता से पूछें कि आप के लिए यह करने के लिए (अगर यह नहीं किया है पहले से ही) या अगर आप अपने DNS रिकॉर्ड्स पर नियंत्रण रखते हैं तो इसे स्वयं करें। यह स्वचालित रूप से आपके सभी सबडोमेन (वर्तमान और भविष्य वाले) को उसी HTTP सर्वर में इंगित करेगा।

एक बार यह हो जाने के बाद, आपको अपने http सर्वर पर सर्वर-साइड स्क्रिप्ट तक पहुंचने के लिए होस्टनाम का उपयोग करने के लिए प्रत्येक होस्ट अनुरोध पर HOST शीर्षलेख का विश्लेषण करने की आवश्यकता होगी।

आप यह मानते हुए 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"); 
%> 
0

मैं कुछ ऐसा करने के लिए देख रहा था (www.mysite.com/SomeUser)।

मैं क्या मैं 404.shtml संपादित इस सर्वर साइड शामिल करने के लिए शामिल हैं (एसएसआई) कोड था:

<!--#include virtual="404.php" -- > 

तब मैं फ़ाइल 404.php, जहां मैं एक उपयोगकर्ता के नाम के लिए जाँच करने के लिए यूआरएल पार्स बनाया है और पता चला है उनके डेटाबेस से जानकारी।

संबंधित मुद्दे