2012-05-23 19 views
85

मैं सर्वरवर्तमान डोमेन हो जाओ

http://www.myserver.uk.com 

इसके लिए पर मेरी साइट है मैं दो डोमेन है:

http://one.com 

और

http://two.com 

मैं पीएचपी वर्तमान डोमेन के साथ मिल चाहते हैं, लेकिन अगर मैं $_SERVER['HTTP_HOST'] का उपयोग तो यह मेरे

दिखाने

one.com or two.com 

कैसे मैं डोमेन प्राप्त कर सकते हैं, नहीं सर्वर नाम:

myserver.uk.com 
बजाय

? मैं PHP संस्करण 5.2

+0

आप केवल प्राथमिक यूआरएल मिल सकती है। उन तीनों में से कौन सा प्राथमिक है? –

+1

बिल्कुल आपके डोमेन पर आपके दो डोमेन 'रीडायरेक्ट' अनुरोध कैसे हैं? –

+1

@infgeoax शायद एक फ्रेम ... – CodeCaster

उत्तर

116

कोशिश इस का उपयोग करते हुए: $_SERVER['SERVER_NAME']

या पार्स

$_SERVER['REQUEST_URI'] 

संपादित करें:

apache_request_headers()

+0

खोज सकते हैं यह शो मुझे नाम के बजाय सर्वर भी नाम देता है डोमेन –

+0

ठीक है, apache_request_headers() – onehalf

+4

-1 के साथ प्रयास करें: अकेले इस उत्तर के साथ, मुझे नहीं पता कि मैं क्या अलग-अलग सुझाव देख रहा हूं। निश्चित रूप से, यह मुझे देखने के लिए एक बिंदु देता है, लेकिन खुद से यह वास्तव में एक अच्छा जवाब नहीं है ... – Jasper

6

है $_SERVER['SERVER_NAME'] की कोशिश करो। युक्तियाँ: एक PHP फ़ाइल बनाएं जो फ़ंक्शन phpinfo() पर कॉल करे और "PHP चर" अनुभाग देखें। उपयोगी चर का एक गुच्छा है जिसे हमने कभी नहीं सोचा था।

+0

यह मुझे नाम डोमेन –

+0

के बजाय सर्वर का नाम भी दिखाता है, आप हमेशा $ _SERVER प्रिंट_आर-आईएनजी करने की कोशिश कर सकते हैं और –

35

का उपयोग करनामुझे (सबडोमेन।) Maindomain.extension मिलता है। मुझे सबसे आसान समाधान लगता है।

संपादित करें: यदि आप वास्तव में एक iFrame के माध्यम से 'पुन: निर्देशित' कर रहे हैं आप एक प्राप्त पैरामीटर जो डोमेन में कहा गया है जोड़ सकते हैं।

<iframe src="myserver.uk.com?domain=one.com"/> 

और फिर आप एक सत्र चर सेट कर सकते हैं जो आपके डेटा में इस डेटा को जारी रखता है।

+1

अधिकतर महत्वपूर्ण रूप से इसमें पोर्ट नंबर शामिल है ताकि मुझे बाद में इसे सम्मिलित करने की आवश्यकता न हो। bsdnoobz द्वारा सुझाए गए phpinfo हालांकि मुझे सही समाधान खोजने में मदद करता है। – Dummy

34

सबसे अच्छा उपयोग

echo $_SERVER['HTTP_HOST']; 

होगा और यह

if(strpos($_SERVER['HTTP_HOST'], 'banana.com') !== false){ 
    echo "Yes this is indeed the banana.com domain"; 
} 

की तरह इस्तेमाल किया जा सकता नीचे इस कोड के साथ एक संरचित HTML आउटपुट में $ _SERVER में सभी चर को देखने के लिए एक अच्छा तरीका है आपके कीवर्ड हाइलाइट किए गए हैं, जो निष्पादन के बाद सीधे रोकते हैं। चूंकि मैं कभी-कभी भूल जाता हूं कि कौन सा खुद का उपयोग करना है - मुझे लगता है कि यह निफ्टी हो सकता है।

<?php 
// change banana.com to the domain you were looking for.. 
$wordToHighlight= "banana.com"; 
$serverVarHighlighted = str_replace($wordToHighlight, '<span style=\'background-color:#883399; color: #FFFFFF;\'>'. $wordToHighlight .'</span>', $_SERVER); 
echo "<pre>"; 
print_r($serverVarHighlighted); 
echo "</pre>"; 
exit(); 
?> 
3

मैं जानता हूँ कि यह पूरी तरह इस विषय पर नहीं हो सकता है, लेकिन मेरे अनुभव में, मैं एक चर उपयोगी में वर्तमान URL की WWW सत्ता भंडारण पाते हैं।

संपादित करें: इसके अलावा, यह देखने के लिए कि यह क्या हो रहा है, कृपया नीचे मेरी टिप्पणी देखें।

यह महत्वपूर्ण है यह निर्धारित करते हुए अजाक्स "www" के साथ कहता है, या बिना प्रेषण करने के लिए है कि क्या:

$.ajax("url" : "www.site.com/script.php", ... 

$.ajax("url" : "site.com/script.php", ... 

जब एक अजाक्स डोमेन नाम फोन से मेल खाना चाहिए ब्राउज़र के एड्रेस बार में की भेजने, अन्यथा आप करेंगे कंसोल में Uncaught SecurityError है।

<?php 
    substr($_SERVER['SERVER_NAME'], 0, 3) == "www" ? $WWW = true : $WWW = false; 

    if ($WWW) { 
     /* We have www.example.com */ 
    } else { 
     /* We have example.com */ 
    } 
?> 

फिर, पर कि क्या $ WWW सच है, या गलत रन उचित अजाक्स कॉल आधारित:

तो मैं मुद्दे के समाधान के लिए इस समाधान के साथ आया था।

मुझे पता है कि यह मामूली लग सकता है, लेकिन यह ऐसी आम समस्या है जो यात्रा करना आसान है।

+0

ओपी ने स्पष्ट रूप से डोमेन के लिए पूछा, न कि _SERVER_NAME_। –

+0

सच है, लेकिन इन दिनों आपको www मुद्दे के बारे में चिंता करने की ज़रूरत है। – InfiniteStack

+0

क्यों? जेएस में आप 'window.location' में देख सकते हैं। PHP में आपको 'SERVER_NAME' मिला। –

4

देर जवाब है, लेकिन यहाँ यह जाता है:

$currentDomain = preg_replace('/www\./i', '', $_SERVER['SERVER_NAME']); 

यह आप एक साफ डोमेन नाम दे देंगे, बिना www

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