बाहरी URL पर पुनर्निर्देशन के लिए मैं किस API फ़ंक्शन का उपयोग करता हूं?


21

मॉड्यूल लिखते समय, ड्रुपल रास्तों पर पुनर्निर्देशन के लिए, एक का उपयोग करता है drupal_goto

क्या कुछ एपीआई फ़ंक्शन हैं जिनका उपयोग मुझे बाहरी पृष्ठों पर पुनर्निर्देशित करने के लिए करना चाहिए? या जाने के रास्ते के Locationसाथ सेट कर रहा है drupal_set_header?

PS मुझे अनुरोध पर कुछ प्रसंस्करण करना है; mod_rewrite/ mod_aliasअपाचे-स्तर या Drupal Path redirectमॉड्यूल पर, मेरी समस्या का समाधान न करें।

जवाबों:


25

आंतरिक और बाहरी पुनर्निर्देशन के लिए आपको ड्रुपाल_गो () का उपयोग करना चाहिए ।

बाहरी पुनर्निर्देशन के लिए 'बाहरी' विकल्प का उपयोग करें: drupal_goto($url, array('external' => TRUE));

drupal_goto ($ पथ = '', सरणी $ विकल्प = सरणी (), $ http_response_code (30%)

$ विकल्प: (वैकल्पिक) निम्नलिखित तत्वों के साथ अतिरिक्त विकल्पों की एक सहयोगी सरणी:

  • 'जिज्ञासा' : क्वेरी कुंजी / मान-जोड़े (किसी भी यूआरएल एन्कोडिंग के बिना) की एक सरणी यूआरएल के लिए संलग्न करने के लिए।
  • 'टुकड़ा' : एक टुकड़ा पहचानकर्ता (नाम लंगर) URL में संलग्न करने के लिए। अग्रणी '#' वर्ण को शामिल न करें।
  • 'निरपेक्ष' : डिफ़ॉल्ट के लिए दोष। चाहे आउटपुट को एक निरपेक्ष लिंक होने के लिए मजबूर करें (http :) के साथ शुरुआत करें। लिंक के लिए उपयोगी है जो साइट के बाहर प्रदर्शित किया जाएगा, जैसे कि आरएसएस फ़ीड में।
  • 'उपनाम' : डिफ़ॉल्ट के लिए दोष। क्या दिया गया मार्ग पहले से URL उपनाम है।
  • 'बाहरी' : क्या दिया गया मार्ग बाहरी URL है।
  • 'भाषा' : एक वैकल्पिक भाषा वस्तु। यदि लिंक किया जा रहा मार्ग साइट के लिए आंतरिक है, तो URL के लिए उपनाम को देखने के लिए $ विकल्प ['भाषा'] का उपयोग किया जाता है। यदि $ विकल्प ['भाषा'] छोड़ दिया जाता है, तो वैश्विक $ language_url का उपयोग किया जाएगा।
  • 'Https' : क्या यह URL किसी सुरक्षित स्थान की ओर इशारा करता है। यदि परिभाषित नहीं किया गया है, तो वर्तमान योजना का उपयोग किया जाता है, इसलिए उपयोगकर्ता क्रमशः HTTP या HTTPS पर रहता है। TRUE HTTPS को लागू करता है और FALSE HTTP को लागू करता है, लेकिन HTTPS को केवल तभी लागू किया जा सकता है जब चर 'https' TRUE पर सेट हो।
  • 'Base_url' : बेस URL को संशोधित करने के लिए केवल आंतरिक रूप से उपयोग किया जाता है, जब किसी भाषा पर निर्भर URL की आवश्यकता होती है।
  • 'उपसर्ग' : केवल आंतरिक रूप से उपयोग किया जाता है, पथ को संशोधित करने के लिए जब भाषा पर निर्भर URL की आवश्यकता होती है।
  • 'स्क्रिप्ट' : ड्रुपल की रूट डायरेक्टरी में स्क्रिप्ट का नाम, जब क्लीन URL को अक्षम किया जाता है, जैसे कि 'index.p.pp'। खाली स्ट्रिंग में चूक, क्योंकि अधिकांश आधुनिक वेब सर्वर स्वचालित रूप से 'index.php' पाते हैं। यदि स्वच्छ URL को अक्षम किया जाता है, तो $ पथ का मान क्वेरी पैरामीटर 'q' से $ विकल्प ['स्क्रिप्ट'] को दिए गए URL में जोड़ा जाता है। जब एक वेब सर्वर पर Drupal को तैनात किया जाता है, जो स्वचालित रूप से index.php को खोजने के लिए कॉन्फ़िगर नहीं किया जा सकता है, तो इस मूल्य को 'index.php' के लिए मजबूर करने के लिए hook_url_outbound_alter () को लागू किया जा सकता है।
  • 'unit_type' : इकाई प्रकार की वस्तु जिसे url () कहा जाता है। केवल सेट करें यदि url () संस्था_यूरी () द्वारा लागू किया गया है।
  • 'एंटिटी' : इकाई ऑब्जेक्ट (जैसे नोड) जिसके लिए URL उत्पन्न किया जा रहा है। केवल सेट करें यदि url () संस्था_यूरी () द्वारा लागू किया गया है।

$ http_response_code: (वैकल्पिक) 302 में पुनर्निर्देशन, चूक के लिए उपयोग करने के लिए HTTP स्थिति कोड। 3xx पुनर्निर्देशन स्थिति कोड के लिए मान्य मान RFC 2616 और नए HTTP कोड कोड के मसौदे में परिभाषित किए गए हैं:

301: स्थायी रूप से स्थानांतरित (अधिकांश रीडायरेक्ट के लिए अनुशंसित मूल्य)।

302: मिला (डिफ़ॉल्ट रूप से Drupal और PHP, कभी-कभी खोज इंजन स्पैमिंग के लिए उपयोग किया जाता है)।

303: अन्य देखें।

304: संशोधित नहीं।

305: प्रॉक्सी का उपयोग करें।

307: अस्थायी पुनर्निर्देश।

द्रुपाल al

Drupal 8 ने drupal_goto फ़ंक्शन को हटा दिया है , बाहरी URL पर पुनर्निर्देशित करने के लिए प्रश्न के लिए यह उत्तर देखें : मैं बाहरी URL पर पुनर्निर्देशित कैसे कर सकता हूं?


1
बहुत अच्छा जवाब
OV

+1 tunic (और इनपुट संपादित करने के लिए निखिल एम) यह उत्तर आधिकारिक एपीआई डॉक्स से बेहतर है: api.drupal.org/api/drupal/includes%21common.inc/function/… (आपके उत्तर में, विकल्प सरणी व्यापक रूप से है बताया गया है)। मान्यता के लिए भी +1 ओलेग है।
थेरोबोक्नो 16
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.