अद्यतन: Drupal मुद्दा # 1796596 Redirect 1.0-rc2 (जून 2015) के रूप में प्रतिबद्ध था। इस समस्या का सही समाधान अब पुनर्निर्देशित मॉड्यूल के नवीनतम स्थिर रिलीज में अपग्रेड करना है, और फिर डेटाबेस अपडेट चलाना है। आपके पास जो भी परिपत्र रीडायरेक्ट हैं, उन्हें सुरक्षित रूप से साफ किया जाएगा।
पुनर्निर्देशित मॉड्यूल में बग के कारण यह समस्या आई। आप इसे किसी पृष्ठ के URL (या शायद केवल इसके शीर्षक, यदि आप pathauto का उपयोग कर रहे हैं) को बदलकर ट्रिगर करते हैं और फिर इसे वापस उसी में बदल देते हैं जो यह हुआ करता था।
उदाहरण के लिए, मान लें कि मेरे पास "कंपनी" नाम का एक पृष्ठ था और मैंने शीर्षक को "हमारी कंपनी" में बदल दिया (जिसने URL उपनाम को हमारी कंपनी में बदल दिया)। फिर मैंने फैसला किया कि मैं वास्तव में इसे पसंद करता हूं, इसलिए मैंने नोड को फिर से संपादित किया और शीर्षक को "कंपनी" में बदल दिया। उस बिंदु पर त्रुटि संदेश " उफ़, ऐसा लगता है कि इस अनुरोध ने एक अनंत लूप बनाने की कोशिश की। हम यहां ऐसी चीजों की अनुमति नहीं देते हैं। हम एक पेशेवर वेबसाइट हैं! " कंपनी पृष्ठ पर दिखाई देना शुरू हो जाएगा।
इसे ठीक करने के तीन तरीके हैं, जो आपके लिए सबसे आसान है, इस पर निर्भर करता है। वे ऊपर से नीचे तक कठिनाई / बहादुरी में हैं।
Drupal / PHP विधि
विषय पर एक लंबा ड्रुपल बग है: अंक # 1796596 और एक अच्छा काम करने वाला पैच है जो टिप्पणी # 124 में समस्या को ठीक करता है ।
उम्मीद है कि यह फिक्स जल्द ही रीडायरेक्ट मॉड्यूल में डाउनलोड के लिए प्रतिबद्ध हो जाएगा। हालाँकि यह अब एक वर्ष से अधिक हो गया है और उस मोर्चे पर कोई प्रगति नहीं हुई है।
एसक्यूएल विधि
समस्या का सबसे तेज़ समाधान डेटाबेस के लिए SQL क्वेरी के साथ है, जैसा नीचे कुछ है। BE CAREFUL और केवल इस विधि को आजमाएं यदि आप जानते हैं कि आप क्या कर रहे हैं - इसे पहले साइट की एक विकास प्रति पर आज़माएं और सुनिश्चित करें कि आपके पास बैकअप है और यदि आपको वापस रोल करने की आवश्यकता है तो परिवर्तनों का सही परीक्षण करें। अतिरिक्त सावधान रहें और यदि आप i18n का उपयोग कर रहे हैं, तो पहले क्वेरी को अच्छी तरह से जांच लें ... हटाए गए को दिखाने के लिए पहली क्वेरी चलाएँ और दूसरा वास्तव में डिलीट करने के लिए।
--Show records to be deleted:
SELECT r.rid, r.language, r.source, r.redirect
FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
--Delete redirects shown in above query:
DELETE r FROM redirect r INNER JOIN url_alias u ON r.source = u.alias
AND r.redirect = u.source AND r.language = u.language;
यदि आपको पता नहीं है कि पैच कैसे लागू करें या SQL क्वेरी को चलाएं, तो आपको समस्या को मैन्युअल रूप से ठीक करने की आवश्यकता है। चिंता न करें, यह वास्तव में करने में काफी आसान है (लेकिन अन्य तरीकों की तुलना में समय लगता है):
मैनुअल विधि:
उन सभी पृष्ठों के लिए जहाँ चेतावनी संदेश प्रदर्शित किया गया है:
- पृष्ठ संपादित करें
- संपादन फ़ॉर्म के नीचे स्क्रॉल करें
- पृष्ठ के मुख्य URL पर ध्यान दें। इसे "URL पथ सेटिंग" के नीचे दिखाया गया है, उदाहरण के लिए "उपनाम: कंपनी" का अर्थ होगा पृष्ठ का URL "कंपनी" है। आप इसके अनुभाग पर जाने के लिए "URL पथ सेटिंग" पर क्लिक कर सकते हैं और यदि आप निश्चित नहीं हैं तो URL उपनाम की पुष्टि करें।
- अब "URL रीडायरेक्ट" पर क्लिक करें। वर्तमान पृष्ठ पर रीडायरेक्ट दिखाए जाएंगे। कम से कम एक रीडायरेक्ट होगा जो आपके द्वारा चरण 3 में उल्लेखित URL उपनाम के समान है। यह संभव है कि इस सूची में एक से अधिक रीडायरेक्ट URL उपनाम से मेल खाए।
- उन सभी पुनर्निर्देशों को हटा दें जो URL उपनाम के समान हैं। ये समस्या डेटा हैं जो लूप और त्रुटि संदेश को प्रदर्शित करने का कारण बन रहे हैं।
- एक बार "URL रीडायरेक्ट" के तहत अधिक रीडायरेक्ट नहीं होते हैं जो URL पथ सेटिंग्स के तहत समस्या पृष्ठ के URL उपनाम से बिल्कुल मेल खाते हैं, त्रुटि संदेश चला जाएगा।