2010-02-01 10 views
13

पर रीडायरेक्ट करता रहता है। मैं URL (HEAD अनुरोध) के अस्तित्व की जांच करने के लिए कर्ल का उपयोग कर रहा हूं लेकिन जब मैं इसे www.google.com के साथ परीक्षण करता हूं, तो यह मुझे रीडायरेक्ट करता है www.google.co.uk - शायद क्योंकि मेरा सर्वर यूके आधारित है।मैं www.google.com कैसे कर सकता हूं - यह मुझे .co.uk

क्या ऐसा कोई तरीका है जिससे आप इसे रोकने से रोक सकते हैं? मैं CURLOPT_FOLLOWLOCATION विकल्प को हटाना नहीं चाहता क्योंकि यह 301 रीडायरेक्ट इत्यादि के लिए उपयोगी है।

मेरे कोड का हिस्सा नीचे है;

$ch = curl_init(); 

    // set URL and other appropriate options 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($ch, CURLOPT_MAXREDIRS, 5); 
    curl_setopt($ch, CURLOPT_NOBODY, true); 
    curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
    curl_setopt($ch, CURLOPT_FORBID_REUSE, true); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 4); 

    $output = curl_exec($ch); 

    // get data  
$data = curl_getinfo($ch); 

$data['url']www.google.co.uk जब मैं www.google.com

+2

@Webbo - मुझे पता है कि आपने टिम का जवाब स्वीकार कर लिया है, लेकिन ऐसा करने का एक तरीका है (मेरा जवाब देखें)। –

+0

धन्यवाद, आप रोज़ाना कुछ सीखते हैं! –

+2

वाह, यह साइट अद्भुत है, सभी को धन्यवाद! –

उत्तर

13

आपको एक कुकी के साथ कर्ल का उपयोग करने की आवश्यकता है जो ब्राउज़र में समान व्यवहार का अनुकरण करता है।

जब आप इंग्लैंड से google.com पर जाते हैं तो यह आपको google.co.uk पर रीडायरेक्ट करता है, हालांकि "google.com पर जाएं" शीर्षक वाले उस पृष्ठ पर एक लिंक है जो आपको google.com पर वापस जाने देता है और वहां रहता है । यह आपकी साइट वरीयताओं को याद रखने के लिए एक कुकी का उपयोग करता है।

उदाहरण के लिए, यहाँ कुकीज़ मैं यह कर (फ़ायरफ़ॉक्स का प्रयोग करके) के बाद होती है:

alt text

+0

+1 जो आपको google.com पर वापस ले जाता है। अब उसे पता लगाना है कि कौन सी कुकी कर्ल के साथ उपयोग करें। – FrustratedWithFormsDesigner

+0

वह दोनों का उपयोग कर सकते हैं, है ना? – Yoni

+0

चीयर्स योनी - आपका उत्तर अधिक प्रत्यक्ष प्रतीत होता है! –

0

आप सीधे www.google.co.uk इस्तेमाल कर सकते हैं, वहाँ कोई अंतर के रूप में $url सेट शामिल हैं। google.com/.net हमेशा आपके स्थान पर रीडायरेक्ट करता है लेकिन यदि आप .co.uk जैसे देश TLD का उपयोग करते हैं तो यह रीडायरेक्ट नहीं होगा।

.com या .net का उपयोग करते समय रीडायरेक्ट को रोकने के लिए कोई रास्ता नहीं है (मुझे ज्ञात है)।

12

www.google.com/ncr पहुंच बनाने का प्रयास है, यह या .co.uk को रीडायरेक्ट करने से बच सकते हैं (किसी भी अन्य राष्ट्रीय) पृष्ठ।

+0

बहुत बढ़िया, यह मेरा नया प्रारंभ पृष्ठ होगा। –

0

Google से यह तय करने का एक तरीका है कि आप किस देश में हैं, एक अलग आईपी पता सेट करके है। बस वेब से कई अमेरिकी प्रॉक्सी सर्वर से एक हो जाते हैं और कुछ इस तरह करते हैं:

$ch=curl_init(); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch,CURLOPT_FOLLOWLOCTION,1); 
curl_setopt($ch,CURLOPT_PROXY,"8.12.33.159"); 
curl_setopt($ch,CURLOPT_PROXYPORT,"80"); 
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3"); 
curl_setopt($ch,CURLOPT_URL,$URI); 
$results=curl_exec($ch); 
curl_close($ch); 

इस तरह, गूगल आपको एक अमेरिका आईपी पते के रूप में और एक स्थानीय गूगल पर रीडायरेक्ट नहीं आ सोचेंगे।

0

आप कर्ल से स्थान का पालन बंद कर देना चाहिए (गलत के लिए सेट) और इसके बाद आप रीडायरेक्ट नहीं किया जाएगा ...

 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
4

एक अन्य विकल्प बस encrypted.google.com उपयोग करने के लिए है। वह पुनर्निर्देशित नहीं होगा।

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