বাহ্যিক URL গুলিতে পুনঃনির্দেশের জন্য আমি কোন API ফাংশন ব্যবহার করব?


21

মডিউল লেখার সময়, ড্রুপাল পাথগুলিতে পুনঃনির্দেশের জন্য, একটি ব্যবহার করে drupal_goto

বাহ্যিক পৃষ্ঠাগুলিতে পুনঃনির্দেশের জন্য আমার এমন কিছু এপিআই ফাংশন ব্যবহার করা উচিত? বা সেটিং করা হয় Locationসঙ্গে drupal_set_headerপথে যাবো?

পিএস অনুরোধে আমাকে কিছু প্রক্রিয়াজাতকরণ করতে হবে; mod_rewrite/ mod_aliasঅ্যাপাচি-স্তরের বা ড্রুপাল Path redirectমডিউলে আমার সমস্যাটি সমাধান করবেন না।

উত্তর:


25

অভ্যন্তরীণ এবং বাহ্যিক পুনঃনির্দেশগুলির জন্য আপনার drupal_goto () ব্যবহার করা উচিত ।

বাহ্যিক পুনঃনির্দেশগুলির জন্য 'বাহ্যিক' বিকল্পটি ব্যবহার করুন: drupal_goto($url, array('external' => TRUE));

দ্রুপাল_গোটো ($ পথ = '', অ্যারে $ অপশনগুলি = অ্যারে (), $ http_response_code = 302)

$ বিকল্পগুলি: (alচ্ছিক) নিম্নলিখিত বিকল্পগুলির সাথে অতিরিক্ত বিকল্পগুলির একটি সম্মিলিত অ্যারে:

  • 'ক্যোয়ারী' : ইউআরএল সংযোজন করার জন্য ক্যোয়ারী কী / মান-জোড়গুলির বিন্যাস (কোনও URL- এনকোডিং ছাড়াই)।
  • 'টুকরা' : ইউআরএল সংযুক্ত করার জন্য একটি খণ্ড সনাক্তকারী (নামযুক্ত অ্যাঙ্কর)। শীর্ষস্থানীয় '#' অক্ষরটি অন্তর্ভুক্ত করবেন না।
  • 'পরম' : মিথ্যাতে ডিফল্ট। আউটপুটটিকে একটি নিখুঁত লিঙ্ক হতে বাধ্য করা হবে (http দিয়ে শুরু) :) সাইটের বাইরে প্রদর্শিত হবে এমন লিঙ্কগুলির জন্য দরকারী, যেমন আরএসএস ফিডে।
  • 'ওরফে' : মিথ্যাতে ডিফল্ট। প্রদত্ত পথটি ইতিমধ্যে ইউআরএল ওরফে কিনা।
  • 'বাহ্যিক' : প্রদত্ত পথটি বাহ্যিক URL কিনা।
  • 'ভাষা' : একটি ঐচ্ছিক ভাষা অবজেক্ট। লিঙ্কযুক্ত পাথটি যদি সাইটের অভ্যন্তরীণ হয় তবে URL টির জন্য উলামের সন্ধান করতে $ বিকল্পগুলি ['ভাষা'] ব্যবহার করা হয়। যদি $ বিকল্পগুলি ['ভাষা'] বাদ দেওয়া হয় তবে বিশ্বব্যাপী $ language_url ব্যবহার করা হবে।
  • 'https' : এই URL টি কোনও নিরাপদ অবস্থানের দিকে নির্দেশ করবে কিনা। যদি সংজ্ঞায়িত না করা হয় তবে বর্তমান স্কিমটি ব্যবহৃত হয়, তাই ব্যবহারকারী যথাক্রমে HTTP বা HTTPS এ থাকে। TRUE HTTPS প্রয়োগ করে এবং FALSE HTTP প্রয়োগ করে, তবে HTTPS কেবল তখনই প্রয়োগ করা যেতে পারে যখন ভেরিয়েবল 'https' সত্যে সেট করা থাকে।
  • 'বেস_আরল' : কোনও ভাষা নির্ভর ইউআরএল প্রয়োজন হলে বেস ইউআরএল সংশোধন করতে কেবল অভ্যন্তরীণভাবে ব্যবহৃত হয়।
  • 'উপসর্গ' : কোনও ভাষা নির্ভর ইউআরএল প্রয়োজন হলে পাথটি পরিবর্তন করতে কেবল অভ্যন্তরীণভাবে ব্যবহৃত হয়।
  • 'স্ক্রিপ্ট' : পরিষ্কার ইউআরএল অক্ষম করা থাকলে ব্যবহারের জন্য দ্রুপালের রুট ডিরেক্টরিতে স্ক্রিপ্ট ফাইলের নাম যেমন 'সূচি.পিএফপি'। খালি স্ট্রিংয়ের ডিফল্ট হিসাবে, বেশিরভাগ আধুনিক ওয়েব সার্ভারগুলি স্বয়ংক্রিয়ভাবে 'index.php' সন্ধান করে। যদি পরিষ্কার ইউআরএল অক্ষম করা থাকে তবে প্রত্যাবর্তিত ইউআরএলে query পথের মান কোয়েরি প্যারামিটার 'q' হিসাবে $ বিকল্পগুলিতে ['স্ক্রিপ্ট'] হিসাবে যুক্ত করা হয়। কোনও ওয়েব সার্ভারে ড্রুপাল মোতায়েন করার সময় যা সূচিপত্র স্বয়ংক্রিয়ভাবে সন্ধানের জন্য কনফিগার করা যায় না, তারপরে এই মানটিকে 'index.php' তে বাধ্য করার জন্য hook_url_outbound_alter () প্রয়োগ করা যেতে পারে।
  • 'সত্তা_প্রকার' : বস্তুর সত্তার প্রকার যা ইউআরএল () বলে called শুধুমাত্র url () সত্তা_রি () দ্বারা আহ্বান করা থাকলে সেট করুন।
  • 'সত্তা' : সত্তা অবজেক্ট (যেমন একটি নোড) যার জন্য URL উত্পন্ন করা হচ্ছে। শুধুমাত্র url () সত্তা_রি () দ্বারা আহ্বান করা থাকলে সেট করুন।

$ http_response_code: ( alচ্ছিক ) পুনঃনির্দেশের জন্য ব্যবহার করার জন্য HTTP স্থিতি কোডটি 302 এ ডিফল্ট 3x 3xx পুনর্নির্দেশের স্থিতি কোডগুলির জন্য বৈধ মানগুলি আরএফসি 2616 এবং নতুন এইচটিটিপি স্থিতি কোডগুলির খসড়াটিতে সংজ্ঞায়িত করা হয়েছে:

301: স্থায়ীভাবে সরানো হয়েছে (সর্বাধিক পুনঃনির্দেশগুলির জন্য প্রস্তাবিত মান)।

302: পাওয়া গেছে (ড্রুপাল এবং পিএইচপিতে ডিফল্ট, কখনও কখনও স্প্যামিং অনুসন্ধান ইঞ্জিনগুলির জন্য ব্যবহৃত হয়)।

303: অন্যান্য দেখুন।

304: পরিবর্তিত নয়।

305: প্রক্সি ব্যবহার করুন।

307: অস্থায়ী পুনঃনির্দেশ।

দ্রুপাল ৮

ড্রুপাল 8 ড্রপাল_গোটো ফাংশনটি সরিয়ে নিয়েছে , বাহ্যিক ইউআরএলটিতে পুনঃনির্দেশের জন্য প্রশ্নের এই উত্তরটি দেখুন : আমি কীভাবে কোনও বাহ্যিক URL এ পুনঃনির্দেশ করব?


1
খুব ভাল উত্তর
ওভি

+1 টিউনিক (এবং সম্পাদনা ইনপুট জন্য নিখিল এম) অফিসিয়াল এপিআই ডক্সের চেয়ে এই উত্তরটি ভাল: api.drupal.org/api/drupal/includes%21common.inc/function/… (আপনার উত্তরে অপশন অ্যারেটি বিস্তৃত বর্ণনা)। +1 স্বীকৃতি জন্য।
therobyouknow
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.