প্রোগ্রামিকভাবে কোনও পুনঃনির্দেশ কীভাবে তৈরি করবেন? [বন্ধ]


14

আমি পুনর্নির্দেশ মডিউলটি দিয়ে 301 পুনর্নির্দেশ তৈরি করার চেষ্টা করি । উদাহরণস্বরূপ, আমি আমার কাস্টম মডিউলটির মাধ্যমে কোনও URL উত্স কোনও অভ্যন্তরীণ URL এ পুনঃনির্দেশ করতে চাই।

আমি নোড তৈরি করার সময় একটি পুনঃনির্দেশ তৈরি করতে চাই। পুরানো সামগ্রী আমদানি করুন, একটি নতুন নোড তৈরি করুন এবং পুরাতন পথটি রাখুন।

কারও ধারণা আছে?


1
আপনার প্রশ্নের অবশ্যই আরও তথ্য যুক্ত করা উচিত। এ পর্যন্ত কি কি চেষ্টা করেছ? আপনার সঠিক সমস্যা কি? উত্তরের একটি মন্তব্যে আপনি যে স্থানান্তরটি উল্লেখ করেছেন তা কেন উল্লেখ করবেন না?
লেইম্যানেক্স

প্রোগ্রামালিক্যালি ইউআরএল পুনঃনির্দেশ তৈরি করতে আপনি কোড স্নিপেটগুলি নীচে ব্যবহার করতে পারেন। // রিডাইরেক্ট প্যারামিটারগুলি দিয়ে একটি অবজেক্ট তৈরি করুন $ redirect = new stdClass (); redirect_object_prepare ($ পুনর্নির্দেশ); $ redirect-> উত্স = 'ওল্ড-ইউআরএল'; $ redirect-> Source_options = অ্যারে (); $ redirect-> redirect = 'node / 5'; // নতুন সিস্টেমের পথ $ redirect-> redirect_options = অ্যারে (); $ পুনঃনির্দেশ-> টাইপ = 'পুনর্নির্দেশ'; $ পুনর্নির্দেশ-> ভাষা = 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


আপনার উত্তরের জন্য ধন্যবাদ. তবে আমি নোড তৈরি করার সময় একটি পুনঃনির্দেশ তৈরি করতে চাই। আমি একটি নতুন নোড তৈরি করতে একটি পুরানো সামগ্রী আমদানি করি এবং আমি পুরানো পথ রাখি।
রোমস্ট

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')); 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.