আমি একটি ড্রুপাল 8 ওয়েবসাইট চালাচ্ছি এবং আমি যখন কোনও পৃষ্ঠায় ব্রাউজ করি তখন আমি এটিতে কেবল নীচের ত্রুটির বার্তা সহ একটি সরল সাদা পৃষ্ঠা পাই।
প্রদত্ত হোস্টের নামটি এই সার্ভারের জন্য বৈধ নয়।
এটার মানে কি? আমি কিভাবে এটা ঠিক করব?
আমি একটি ড্রুপাল 8 ওয়েবসাইট চালাচ্ছি এবং আমি যখন কোনও পৃষ্ঠায় ব্রাউজ করি তখন আমি এটিতে কেবল নীচের ত্রুটির বার্তা সহ একটি সরল সাদা পৃষ্ঠা পাই।
প্রদত্ত হোস্টের নামটি এই সার্ভারের জন্য বৈধ নয়।
এটার মানে কি? আমি কিভাবে এটা ঠিক করব?
উত্তর:
এই ত্রুটি বার্তাটি এমন কোনও বৈশিষ্ট্য থেকে আসছে যা এইচটিটিপি হোস্ট শিরোলেখ আক্রমণ থেকে রক্ষা পেতে ড্রুপাল 8 এ যুক্ত হয়েছিল । বৈশিষ্ট্যটি প্যাচটির জন্য তৈরি হওয়া রেকর্ড রেকর্ডেও বর্ণিত হয়েছে ।
মূলত, নেতিবাচক উদ্দেশ্যে HTTP হোস্ট শিরোনামকে ফাঁকি দেওয়া এবং দ্রুপালকে বিভিন্ন সাবসিস্টিমে (বিশেষত লিঙ্ক জেনারেশন) আলাদা ডোমেন নাম ব্যবহার করার জন্য ঠকানো সম্ভব হয়েছিল । অন্য কথায়, HTTP হোস্ট শিরোনামটি ব্যবহারকারী ইনপুট হিসাবে বিবেচনা করা উচিত, এবং বিশ্বাসযোগ্য নয় and
এটির বিরুদ্ধে লড়াই করার জন্য, একটি নতুন সেটিং, $settings['trusted_host_patterns']
ড্রুপাল 8-এ যুক্ত করা হয়েছিল যাতে সাইটটি চালাতে পারে এমন "বিশ্বস্ত" হোস্টনামগুলির একটি তালিকা কনফিগার করতে পারে। সেটিংটি নিয়মিত অভিব্যক্তি বিন্যাসগুলির একটি অ্যারে হওয়া আবশ্যক, ছাড়পত্র ছাড়াই, আপনি যে হোস্টনামটি থেকে চালানোর অনুমতি দিতে চান তা উপস্থাপন করে।
উদাহরণস্বরূপ, আপনি যদি কোনও একক হোস্টনাম "www.example.com" থেকে আপনার সাইটটি চালাচ্ছেন তবে আপনার সেটিংসে এটি যুক্ত করা উচিত (সাধারণত এটি পাওয়া যায় ./sites/default/settings.php
):
$settings['trusted_host_patterns'] = array(
'^www\.example\.com$',
);
নোট করুন ^
, \.
এবং $
। এগুলি পিসিআরই সিনট্যাক্স । এর অর্থ কেবলমাত্র আপনি "www.example.com" এর সাথে শুরু এবং শেষের দিকে অতিরিক্ত কিছু না দিয়ে অবিকল মিলে যেতে চান এবং বিন্দুগুলিকে বিন্দু হিসাবে বিবেচনা করা উচিত এবং ওয়াইল্ডকার্ডের অক্ষর নয়।
আপনি যদি "উদাহরণ.com" থেকে চালাচ্ছেন তবে কেবল ব্যবহার করুন:
$settings['trusted_host_patterns'] = array(
'^example\.com$',
);
আপনার যদি একাধিক ডোমেন এবং / অথবা সাবডোমেনগুলির একটি সাইট চালানোর দরকার হয় এবং আপনি ক্যানোনিকাল ইউআরএল পুনঃনির্দেশ না করে থাকেন তবে আপনার সেটিংটি এর মতো দেখতে লাগবে:
$settings['trusted_host_patterns'] = array(
'^example\.com$',
'^.+\.example\.com$',
'^example\.org',
'^.+\.example\.org',
);
এটি সাইটকে উদাহরণ ডটকম এবং উদাহরণ.অর্গের সমস্ত বৈকল্পিকের সাথে সমস্ত সাবডোমেন অন্তর্ভুক্ত রাখার অনুমতি দেয়।
একবার আপনি $settings['trusted_host_patterns']
যথাযথ মানটির সাথে সামঞ্জস্য করলে আপনার সাইটে আবার ব্রাউজ করতে সক্ষম হওয়া উচিত।
আপনি প্রশাসক / প্রতিবেদন / স্থিতিতে থাকা স্থিতি প্রতিবেদন পৃষ্ঠা থেকে আপনার বিশ্বস্ত হোস্ট সেটিংসের স্থিতিও পরীক্ষা করতে পারেন
আপনি যদি পুরোপুরি সেটিংসটি সরিয়ে ফেলেন তবে বিশ্বস্ত হোস্ট মেকানিজম ব্যবহার করা হবে না এবং আপনি স্থিতির প্রতিবেদন পৃষ্ঠাতে একটি ত্রুটি দেখতে পাবেন। এছাড়াও, আপনার সাইটটিও দুর্বল এইচটিটিপি হোস্ট শিরোনামের আক্রমণ হতে পারে be
যদি আপনি এই সেটিংটি কনফিগার করেছেন এবং এই বার্তাটি দেখছেন, তবে সম্ভবত এটির অর্থ হ'ল আপনি নিয়মিত এক্সপ্রেশন সিনট্যাক্সটি গণ্ডগোল করেছেন। এই ক্ষেত্রে, প্রথম উদাহরণটি ধরুন এবং আপনার সেটিংসে অনুলিপি / পেস্ট করুন এবং তারপরে আপনার সাইটটি যে হোস্টনামটি চালিত হয়েছে সেটিকে প্রতিফলিত করতে এটি সম্পাদনা করুন।
লোকালহোস্ট ইনস্টলেশনের জন্য আপনি আপনার সেটিংস.এফপি ফাইলে নিম্নলিখিত কোডটি ব্যবহার করতে পারেন
$settings['trusted_host_patterns'] = array(
'^localhost$','^YOUR_IP_ADDRESS$'
);
trusted_host_patterns
আপনার সেটিংস ফাইলে পরিবর্তনশীল হওয়ার কারণে এটি ঘটে । আপনি যদি স্থানীয় পরিবেশে কাজ করছেন এবং আপনি এটিকে ওভাররাইড করতে চান তবে আপনার settings.local.php
ফাইলে নিম্নলিখিত বিভাগটি সংজ্ঞায়িত করুন:
/*
* Drupal Trusted Host Patterns
*/
$settings['trusted_host_patterns'] = [];
বা আরও জেনেরিক প্যাটার্ন :
$settings['trusted_host_patterns'] = [ '.*' ];
বা স্থানীয় পরিবেশের জন্য আরও নির্দিষ্ট :
$settings['trusted_host_patterns'] = array(
'^172\.20.\0.\3$',
'^localhost$',
);
এটি সর্বাধিক সহজ সমাধান, তবে প্রস্তাবিত নয় কারণ আপনার নিকৃষ্ট উদ্দেশ্যে HTTP হোস্ট শিরোনামকে ফাঁকি দেওয়া এড়াতে সঠিক মানগুলি নির্ধারণ করা উচিত। যদি আপনার ওয়েবসাইটটি কেবল আপনার লোকালটিতে চলমান থাকে তবে আপনার ভাল হওয়া উচিত।
আপনার কাছে থাকলে এই সমস্যাটিও ঘটবে
<VirtualHost *:443>
যখন আপনার উচিত
<VirtualHost *:80>
একটি নন-এসএসএল সেটআপে সেট করুন (দেব / পরীক্ষার পরিবেশের জন্য পছন্দ করুন) এবং পোর্ট ৮০ এ সাইটটি অ্যাক্সেস করার চেষ্টা করুন
এটি সার্ভারের বিশ্বস্ত হোস্ট কনফিগারেশনের কারণে। আপনি ডোমেন নাম পরিবর্তন করলে বা এটি তৈরি করতে পারে 'trusted_host_patterns'
। সমস্যা সমাধানের জন্য আপনার নতুন ডোমেনটিকে DRUPAL_ROOT/sites/SITE_FOLDER/settings.php
(প্রাক্তন sites/defaults/settings.php
:) যুক্ত করুন
উদাহরণ: ডোমেনের নাম = newdomain.com
$settings['trusted_host_patterns'] = array(
'^newdomain.com\.loc$',
'^www\.newdomain.com\.loc$',
);