प्रोग्राम को रीडायरेक्ट कैसे बनाएं? [बन्द है]


14

मैं पुनर्निर्देशन 301 को पुनर्निर्देशित मॉड्यूल के साथ बनाने की कोशिश करता हूं । उदाहरण के लिए, मैं अपने कस्टम मॉड्यूल के माध्यम से एक URL स्रोत को आंतरिक URL पर पुनर्निर्देशित करना चाहता हूं।

मैं नोड बनाते समय पुनर्निर्देशन बनाना चाहता हूं। पुरानी सामग्री आयात करें, एक नया नोड बनाएं और पुराने पथ को बनाए रखें।

किसी को एक विचार है?


1
आपको अपने सवाल में और जानकारी जरूर डालनी चाहिए। अब तक तुमने क्या प्रयास किये हैं? आपकी सटीक समस्या क्या है? आप किसी उत्तर के लिए एक टिप्पणी में उल्लिखित प्रवास का उल्लेख क्यों नहीं करते?
leymannx

प्रोग्रामेटिक रूप से URL रीडायरेक्ट बनाने के लिए आप नीचे दिए गए कोड स्निपेट का उपयोग कर सकते हैं। // पुनर्निर्देशित मापदंडों के साथ एक वस्तु बनाएं $ पुनर्निर्देशित करें = नया stdClass (); redirect_object_prepare ($ रीडायरेक्ट); $ पुनर्निर्देशित-> स्रोत = 'पुराना-यूआरएल'; $ पुनर्निर्देशित-> source_options = सरणी (); $ पुनर्निर्देशित-> पुनर्निर्देशित = 'नोड / 5'; // नई प्रणाली पथ $ पुनर्निर्देशित-> पुनर्निर्देशन_रूप = सरणी (); $ पुनर्निर्देशित-> प्रकार = 'पुनर्निर्देशित'; $ पुनर्निर्देशित-> भाषा = LANGUAGE_NONE; redirect_save ($ रीडायरेक्ट);
आर्यश्री प्रीतिकृष्ण

जवाबों:


24

यदि आप डेटाबेस में रीडायरेक्ट को स्टोर करना चाहते हैं तो मॉड्यूल रीडायरेक्ट का उपयोग करें । यह मॉड्यूल पुनर्निर्देश जोड़ने के लिए एक उपयोगकर्ता इंटरफ़ेस प्रदान करता है। रीडायरेक्ट एक सामग्री इकाई में संग्रहीत किए जाते हैं, जिसे आप प्रोग्रामेटिक रूप से भी बना सकते हैं:

use Drupal\redirect\Entity\Redirect;

  Redirect::create([
    'redirect_source' => 'redirects/redirect1',
    'redirect_redirect' => 'internal:/node/1',
    'language' => 'und',
    'status_code' => '301',
  ])->save();

आप यह उस समय कर सकते हैं जब आप आयातित डेटा से नोड्स बनाते हैं या आप एक इकाई हुक में कोड डाल सकते हैं जो नोड को बनाते, संपादित या हटाते समय रीडायरेक्ट को अपडेट करता है।


6

आप इसे RedirectResponseप्राप्त करने के लिए उपयोग कर सकते हैं ।

निम्न लिंक देखें

/drupal//a/138852


आपके उत्तर के लिए धन्यवाद। लेकिन मैं नोड बनाते समय पुनर्निर्देशन बनाना चाहता हूं। मैं एक नया नोड बनाने के लिए एक पुरानी सामग्री आयात करता हूं और मैं पुराना पथ रखता हूं।
15

4

आप इस कोड को जोड़कर अपना .htaccess बदल सकते हैं:

#custom redirects
RewriteRule ^old/URL/path$ http://example.com/new/path [R=301,L]
#end custom redirects

या यदि आप ड्रुपल में ऐसा करना चाहते हैं:

return new RedirectResponse(Drupal\Core\Url::fromUri('route_name')); 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.