পাথ এলিফটি প্রথম পৃষ্ঠায় পুনর্নির্দেশ লুপ তৈরি করে বা পুনর্নির্দেশ করে


11

আমি যখন আমাদের সিটকে "www.example.com/contact-us" বলি আমি নিম্নলিখিত ত্রুটিটি পাচ্ছি:

ওফস, দেখে মনে হচ্ছে এই অনুরোধটি একটি অসীম লুপ তৈরির চেষ্টা করেছিল। আমরা এ জাতীয় জিনিস এখানে অনুমতি দেয় না। আমরা একটি পেশাদার ওয়েবসাইট!

যদি আমি "www.example.com/node/5" দিয়ে সাইটটি কল করি তবে যোগাযোগ পৃষ্ঠাটি ঠিক আছে।

আমি যখন / অ্যাডমিন / কনফিগার / অনুসন্ধান / পাথ / সম্পাদনা / on-এ পাথের উরফটি যাচাই করি, সিস্টেমের পাথ এবং উপকরণটি সঠিকভাবে সেট করা থাকে।

আরেকটি সমস্যা অন্য আরবের জন্য বিদ্যমান, যখন আমি "www.example.com/staff" কল করি আমি ল্যান্ডিং পৃষ্ঠায় "www.example.com" এ পুনঃনির্দেশিত হচ্ছি। আবারও উপন্যাসটি সঠিকভাবে সেট করা আছে।

আমরা ড্রুপাল 7 এবং i18n_redirect এবং redirect মডিউলগুলি ব্যবহার করছি।


আমার ধারণা আমি এটি পেয়েছি: "www.example.com/admin/config/search/redirect" এ সেই URL গুলির পুনঃনির্দেশকারী এন্ট্রি ছিল। তারা কীভাবে সেখানে
ম্যাথিয়াস

উত্তর:


19

আপনার পৃষ্ঠাটি সম্পাদনা করুন এবং ইউআরএল পুনর্নির্দেশগুলিতে যান । সর্বাধিক সংখ্যার গণনা সহ পুনর্নির্দেশের পথটি সন্ধান করুন এবং এটি মুছুন। সেভ ক্লিক করুন তারপরে পৃষ্ঠাটি দেখুন।

যদি এটি আপনার সমস্যার সমাধান করে তবে আমাকে জানান


আমার একই ধরণের সমস্যা হচ্ছে এবং এটি পৃথক নোডগুলির জন্য জিনিসগুলি স্থির করার সময় আমি প্রথমে এর কারণ কী তা খুঁজে বের করার চেষ্টা করছি যাতে এটি শুরু হওয়ার মতো ঘটনা ঘটে না।
গোল্ড

8

আপডেট: ড্রুপাল ইস্যু # 1796596 রিডাইরেক্ট 1.0-আরসি 2 (জুন 2015) হিসাবে প্রতিশ্রুতিবদ্ধ হয়েছিল। এই সমস্যার সঠিক সমাধান হ'ল পুনর্নির্দেশ মডিউলের সর্বশেষতম স্থিতি প্রকাশে আপগ্রেড করা এবং তারপরে ডাটাবেস আপডেট চালানো। আপনার যে কোনও বিজ্ঞপ্তি পুনর্নির্দেশগুলি নিরাপদে পরিষ্কার করা হবে।

পুনঃনির্দেশ মডিউলে একটি বাগের কারণে এই সমস্যাটি এসেছে। আপনি কোনও পৃষ্ঠার ইউআরএল (বা সম্ভবত এটির শিরোনাম, আপনি যদি পাঠাটো ব্যবহার করছেন) পরিবর্তন করে এবং তারপরে এটি যা ব্যবহৃত হয়েছিল তা ফিরিয়ে এটিকে ট্রিগার করে।

উদাহরণস্বরূপ, ধরা যাক যে আমার একটি পৃষ্ঠা "সংস্থা" নামে ছিল এবং আমি শিরোনামটি "আমাদের সংস্থা" (যা ইউআরএল ওরফেটি আমাদের সংস্থায় পরিবর্তন করেছিলাম) এ পরিবর্তন করেছি। তারপরে আমি স্থির করেছিলাম যে আমি এটি প্রথম উপায়ে পছন্দ করেছি তাই আমি নোডটি আবার সম্পাদনা করব এবং শিরোনামটি "কোম্পানী" এ ফিরে আসি। এই মুহুর্তে ত্রুটি বার্তা " ওফস, দেখে মনে হচ্ছে এই অনুরোধটি একটি অসীম লুপ তৈরি করার চেষ্টা করেছে We আমরা এখানে এই জাতীয় জিনিসগুলিকে অনুমতি দিই না We আমরা একটি পেশাদার ওয়েবসাইট! " কোম্পানির পৃষ্ঠায় প্রদর্শিত হবে।

আপনার পক্ষে সবচেয়ে সহজ কিসের উপর নির্ভর করে এটি ঠিক করার তিনটি উপায় রয়েছে। এগুলি উপরে থেকে নীচে পর্যন্ত অসুবিধা / সাহসিকতার মধ্যে রয়েছে।

ড্রুপাল / পিএইচপি পদ্ধতি

এই বিষয়ে একটি দীর্ঘ দ্রুপাল বাগ রয়েছে: ইস্যু # 1796596 এবং একটি ভাল ওয়ার্কিং প্যাচ রয়েছে যা মন্তব্য # 124 এ সমস্যাটি সমাধান করে ।

আশা করি খুব শীঘ্রই এই ফিক্স ডাউনলোডের জন্য পুনর্নির্দেশ মডিউলে প্রতিশ্রুতিবদ্ধ হয়ে উঠবে। তবে এটি এখন এক বছর পেরিয়ে গেছে যে ফ্রন্টে কোনও অগ্রগতির চিহ্ন নেই।

এসকিউএল পদ্ধতি

সমস্যার দ্রুততম সমাধানটি হ'ল নীচের মতো কিছু সহ ডাটাবেসে একটি এসকিউএল কোয়েরি। সাবধানতা অবলম্বন করুন এবং কেবলমাত্র এই পদ্ধতিটি চেষ্টা করুন যদি আপনি জানেন যে আপনি কী করছেন - প্রথমে সাইটের ডেভলপমেন্ট কপির উপর এটি ব্যবহার করে দেখুন এবং আপনার ব্যাকআপ রয়েছে কিনা তা নিশ্চিত করে নিন এবং আপনার যদি পিছনে ফিরে যেতে চান তবে ঠিক পরে পরিবর্তনগুলি পরীক্ষা করে নিন। অতিরিক্ত সতর্কতা অবলম্বন করুন এবং আপনি যদি আই 18 এন ব্যবহার করছেন তবে প্রথম ক্যোয়ারীটি আরও ভালভাবে পরীক্ষা করুন ... কী মুছে ফেলা হবে তা দেখানোর জন্য প্রথম ক্যোয়ারী চালান এবং দ্বিতীয়টি আসলে মুছে ফেলতে হবে।

--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;

আপনি কীভাবে প্যাচগুলি প্রয়োগ করতে বা এসকিউএল কোয়েরিগুলি চালাতে জানেন না, তবে আপনাকে নিজেই সমস্যাটি সমাধান করতে হবে। চিন্তা করবেন না, এটি করা বেশ সহজ (তবে অন্যান্য পদ্ধতির তুলনায় সময় সাপেক্ষ):

ম্যানুয়াল পদ্ধতি:

সতর্কতা বার্তা প্রদর্শিত প্রতিটি পৃষ্ঠার জন্য:

  1. পৃষ্ঠাটি সম্পাদনা করুন
  2. সম্পাদনা ফর্মের নীচে স্ক্রোল করুন
  3. পৃষ্ঠার মূল URL টি নোট করুন। এটি "ইউআরএল পাথ সেটিংস" এর নীচে প্রদর্শিত হয়েছে, উদাহরণস্বরূপ "উপন্যাস: সংস্থা" অর্থ পৃষ্ঠার URL টি "সংস্থা" হবে। আপনি তার বিভাগটি দেখতে "ইউআরএল পাথ সেটিংস" এ ক্লিক করতে পারেন এবং নিশ্চিত না হন তবে ইউআরএল উপন্যাসটি নিশ্চিত করতে পারেন।
  4. এখন "ইউআরএল পুনঃনির্দেশগুলি" ক্লিক করুন। বর্তমান পৃষ্ঠায় পুনঃনির্দেশগুলি প্রদর্শিত হবে। কমপক্ষে একটি পুনর্নির্দেশ হবে যা আপনি ইউআরএল উপন্যাসের মতোই ধাপে step. টিতে উল্লিখিত হয়েছে এটি সম্ভব এই তালিকার একাধিক পুনর্নির্দেশ URL টির সাথে মিলবে alias
  5. সমস্ত URL টি পুনর্নির্দেশগুলি মুছুন যা URL টির মতো নয়। এগুলি এমন সমস্যা ডেটা যা লুপ এবং ত্রুটির বার্তাটি প্রদর্শিত হতে পারে।
  6. "ইউআরএল পুনঃনির্দেশগুলি" এর অধীনে আর কোনও পুনঃনির্দেশ নেই যা URL পৃষ্ঠার সেটিংসের আওতায় সমস্যার পৃষ্ঠার ইউআরএল ওরফে হুবহু মিলে যায়, ত্রুটি বার্তাটি চলে যাবে।

ভাল কাজ এসকিউএল পদ্ধতি! thx
rémy

পুনর্নির্দেশের প্যাচটি মুক্তির জন্য প্রায় প্রস্তুত। ভেবেছিলাম আমি এটি উল্লেখ করব।
আলফ্রেড আর্মস্ট্রং

1

নোডের ওরফে আমাদের যদি একই পুনঃনির্দেশনা থাকে তবে এই ত্রুটিটি সমাধানের অন্য একটি উপায় হ'ল একটি স্ক্রিপ্ট চালানো যা সমস্ত নিডের মাধ্যমে (নোডের ক্ষেত্রে) এবং প্রতিটি নোডের ওরফে একই নামের সাথে পুনঃনির্দেশ আছে কিনা তা যদি দেখা যায় নির্মূল করা হয়।

for ($i=1; $i<=10000; $i++) {
  $alias = drupal_get_path_alias("node/" . $i);
  $redirect = redirect_load_by_source($alias);
  if ($redireccion->rid> 0) {
    redirect_page_cache_clear($redirect);
    redirect_delete($redireccion->rid);
  }
}

আপনি উন্নয়ন মেনু থেকে "পিএইচপি কোডটি কার্যকর করুন" বিকল্পে এই কোডটি চালাতে পারেন।

এই ফর্মটি "এসকিউএল পদ্ধতি" এর মতো, কেবলমাত্র আমি এটি ড্রুপাল থেকে চালিত করি, ডাটাবেসে নয়।


এটি নিখুঁতভাবে কাজ করেছে!
অ্যালবার্টস্কি


0

ড্রশ লিপি তৈরি করুন:

<?php
// Set up the query using the database API
$query = db_select('redirect', 'r');
$query->join('url_alias', 'ua', 'r.redirect = ua.source AND r.source = ua.alias');
$query->fields('r', array('rid', 'redirect', 'source'));

// Execute it and fetch the results, one by one
$result = $query->execute();
$any_results = FALSE;
while($r = $result->fetchAssoc()) {
  // For each result, flag we've got at least one result, notify the CLI user
  // of what we're doing, and delete it using Redirect's own API
  $any_results = TRUE;
  drush_log(dt("Deleting unwanted redirect !r (!s -> !t)",
    array("!r" => $r['rid'], "!s" => $r['source'], "!t" => $r['redirect'])), "success");
  redirect_delete($r['rid']);
}

// No results? Report if that's the case
if (!$any_results) {
  drush_log(dt("Nothing to delete!"), "ok");
}

এটিকে কোনও ফাইলে সংরক্ষণ করুন drush php-script [PATH_TO_SCRIPT]এবং এটি ব্যবহার করে আপনার সাইটের কোডবেসের মধ্যে দিয়ে চালনা করুন এবং এটি কোনও ইউআরএল এলিয়াসের সাথে সংঘর্ষের যে কোনও পুননির্দেশনা মুছে ফেলবে।


0

ভবিষ্যতে প্রোডাকশন সার্ভারে "পুনর্নির্দেশ লুপ" ত্রুটি বার্তাটি প্রদর্শন করা আমি কীভাবে আটকাতে পারি? আমি ইতিমধ্যে এই পৃষ্ঠায় "কিছুই নয়" - এডমিন / কনফিগারেশন / ডেভেলপমেন্ট / লগিংয়ের ত্রুটিটি প্রতিস্থাপন করেছি


-2

অনেক প্যাচ করার চেষ্টা করার একমাত্র উপায় হ'ল পুনর্নির্দেশ.মডিউল ফাইলটি খুলুন এবং লাইন # 989 বাদ দিন

drupal_set_message('Oops, looks like this request tried to create an infinite loop. We do not allow such things here. We are a professional website!');

1
সুতরাং অসীম পুনর্নির্দেশ লুপটি ঠিক করার পরিবর্তে আপনি কেবল সতর্কতাটি বাদ দিয়েছেন?
জর্জ

1
যদিও আমি ছোটবেলায় এই ধরণের কাজটি করেছি (কোডিংয়ের আগে জানার আগে), আমি কোনও পেশাদার দক্ষতায় এটি করার পরামর্শ দিই না। আপনি কেবল সমস্যার সমাধান করছেন না, আপনি কেবলমাত্র কিছু ভুল যে একমাত্র সূচকটি লুকিয়ে রেখেছেন!
কোলান

-2

আমার ইংরেজি খুব ভাল না, তবে আমি মনে করি আপনি আমাকে পড়তে সমস্যা করেন না। আমার এই সমস্যার আগেই আছে এবং আমি এটি সমাধান করেছি তাই আমি মডেলটিকে পুনরায় মুছে ফেললাম। শুভেচ্ছা কোজনাজনা সাইট টিম - সাইমন


1
আপনাকে যদি এর বৈশিষ্ট্যগুলির প্রয়োজন হয় তবে আপনাকে পুনর্নির্দেশ মডিউলটি সরিয়ে ফেলতে সাহায্য করবে না।
কোলান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.