অ্যাপাচিতে মেলে না এমন ডোমেন / সাবডোমেনগুলির জন্য ডিফল্ট হ্যান্ডলিং


12

আমার একাধিক ভার্চুয়ালহোস্ট সহ একটি অ্যাপাচি 2 কনফিগারেশন রয়েছে। আমার ডিএনএস *.<domain>.<tld>একাধিক ডোমেনে গ্রহণ করার জন্য প্রস্তুত । সবকিছু সঠিকভাবে কাজ করছে তবে আমি যদি যাই তবে something-random-here.example.comআমার মনে হয় একটি অবৈধ ভার্চুয়ালহোস্ট নির্বাচিত হচ্ছে (আমি এটির প্রথম বা শেষটি খুঁজে পেয়েছি)। ভার্চুয়ালহস্ট এন্ট্রিগুলির কোনওটিই ডোমেন বা সাবডোমেনের সাথে মেলে না, তবে অ্যাপাচে কিছু নির্দিষ্ট নিয়ম ব্যবহার করার বলার উপায় আছে কি? আমি প্রায় 404 ফিরিয়ে দিতে চাই।

উত্তর:


12

কোনও নামের মিল না থাকলে অ্যাপাচি প্রথম ভার্চুয়ালহোস্ট ব্যবহার করে। আপনার পছন্দমতো প্রদর্শন করে - অথবা একটি 404 পৃষ্ঠা ফেরত দিয়ে কেবল একটি এলোমেলো নাম দিয়ে প্রথম হিসাবে একটি নতুন ভার্চুয়ালহোস্ট কনফিগার করুন।


ধন্যবাদ তবে আপনি কি দয়া করে বিস্তারিত বলতে পারবেন? আমি এটি কাজ করতে পারি না।
রাইল

2
আপনার অ্যাপাচি 2 কনফিগারেশন ফাইলগুলি কীভাবে আউট করা যায়? অথবা আপনি কোন অপারেটিং সিস্টেম ব্যবহার করেন? অ্যাপাচি একটি নির্দিষ্ট ক্রমে কনফিগারেশনটি পড়ে, এবং এটি প্রথম ভার্চুয়ালহোস্ট দেখে এটি ডিফল্ট। এটি অজানা হোস্টের নাম থেকে সমস্ত ট্র্যাফিক গ্রহণ করে। সুতরাং আপনার যদি একটি একক কনফিগারেশন ফাইল থাকে তবে প্রথম ভার্চুয়ালহোস্ট এটি। আপনার যদি বেশিরভাগ লিনাক্সের মতো একাধিক থাকে তবে এটি 0 ডিফল্ট বা তাই বলা যেতে পারে ...
উভয়

আমি এর মধ্যে কিছু ডিফল্ট কনফিগারেশন রেখেছি ports.conf। এটি কাজ করছিল না কারণ আমি যখন আমার ভার্চুয়াল হোস্টে <ip>: 80 ব্যবহার করছিলাম তখন আমি *: 80 এর সাথে মেলে চেষ্টা করেছি। পরিবর্তে আমাকে প্রতিটি আইপির জন্য পৃথক ডিফল্ট এন্ট্রি তৈরি করতে হয়েছিল এবং এটি এখন কাজ করে।
Ryall

আমার প্রথম বা শেষ ভি-হোস্ট ফাইল ব্যবহার করা হয় না। আমার মনে হয় অ্যাপাচি বদলে গেছে।
কোবোল্ট

4

ওয়াইল্ডকার্ড আপনার সাইট কনফিগারেশন ফাইল অন্তর্ভুক্ত:

Include path/to/site/confs/*httpd.conf

আপনার সাইট কনফ ফাইলগুলি এমনভাবে সংগঠিত করুন যাতে সেগুলি প্রত্যাশিত ক্রমে লোড হয়। উদাহরণ ...

01-httpd.conf

02-site1-httpd.conf

03-site2-httpd.conf

ইত্যাদি ...

এপাচি ক্রমক্রমে এগুলি পড়বে। তারপরে এমন একটি তৈরি করুন যা যেকোন মিলহীন ভার্চুয়াল হোস্টগুলি ধরার জন্য সর্বদা শেষ লোড হবে এবং কোনও ডিফল্ট সাইট লোড করার পরিবর্তে 404 ফেরত আসবে।

99-ক্যাচঅল-httpd.conf

<VirtualHost *:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost *:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

আপনার httpd যা শোনে তার বন্দরগুলির সাথে পোর্টগুলি প্রতিস্থাপন করতে ভুলবেন না। অথবা যদি আপনার নির্দিষ্ট ইন্টারফেসে httpd শোনা থাকে তবে আপনার পরিবর্তে প্রতিটি ইন্টারফেসের জন্য একটি ক্যাচল যুক্ত করতে হবে:

<VirtualHost 192.168.1.101:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.101:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost 192.168.1.102:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost 192.168.1.102:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

আশাকরি এটা সাহায্য করবে. আমি নির্ধারিত ক্রমগুলিতে সাইটগুলি লোড করার জন্য এই পদ্ধতিটি ব্যবহার করি এবং অপ্রত্যাশিত সাইটটি অপ্রত্যাশিতভাবে লোড করা থেকে মেলে না virtual


"সার্ভারআলিয়াস *" কে ক্যাচ-সব নিয়ম থেকে সরানো উচিত নয়?
আহ্ম 3 ডি

আমি মনে করি এটি কোন ব্যাপার না। যদি ক্যাচলের আগে ভার্চুয়াল হোস্টগুলির মধ্যে কেউই অনুরোধটি পরিচালনা করে না, তবে এগুলি 404 টি প্রতিক্রিয়া ফিরিয়ে দেবে। সার্ভারআলিয়াস * অপসারণ করতে হবে এমন কোনও কারণ আমি দেখছি না, তবে তারা অযথা নির্দিষ্টভাবে থাকতে পারে।
জেসন স্লোবটস্কি

0

Moritz Bothউল্লেখ হিসাবে , অ্যাপাচি 2 এটি অনুরোধ করে এমন প্রথম ভার্চুয়াল হোস্টটি ব্যবহার করবে যা এটি আপনি অনুরোধ করা কোনওটির সাথে মেলে না।

আপনি প্রথম অ্যাপাচি 2 ইনস্টল করার সময় একটি ডিফল্ট ওয়েবসাইট কনফারেন্স রয়েছে যে আপনি কোনও টেম্পলেট হিসাবে ব্যবহার করতে পারবেন, সংশোধন করতে বা মুছতে পারবেন এবং আমি সর্বদা ভাবছিলাম যে 000-default.conf আসলে কী ছিল, কারণ তাদেরও একটি ডিফল্টকন্ট ছিল। কি Moritz Bothবলেছে পড়ার পরে , এটি এখন আরও বোধগম্য।

আমি আমার সার্ভারের জন্য যা করেছি তা হ'ল ডিফল্ট হোস্টনেম (ওয়েবসাইট) এর কনফিগারেশনটি 000-default.conf ফাইল এবং অনুলিপি করা হয়েছিল a2ensite 000-default

এখন, আমার ওয়েবসাইটটিতে প্রতিবারের সাথে মেলে না এমন ডোমেন অনুরোধ, এটি 000-ডিফল্ট পৃষ্ঠাটি সরবরাহ করে, যা আমার আসল ডিফল্ট পৃষ্ঠার কেবল একটি অনুলিপি।


1
আমি একই কাজটি করি তবে আমার মিল-না-মেলে / ডিফল্ট হোস্ট যথাযথ শীর্ষ স্তরের সাইটে একটি পুনর্নির্দেশ পাঠায় যা প্রদর্শিত ইউআরএলটিকে সঠিক হিসাবে পরিবর্তিত করে।
ivanivan

এটা সত্যিই দুর্দান্ত ধারণা! আমি সে সম্পর্কে ভেবে দেখিনি। আমি অবশ্যই আমার সাইটটি এর মতো বাস্তবায়িত করব :)
নিউটেক বিকাশকারী 18

কিছু কারণে, আমি আমার এসএসএল (ডিফল্ট পৃষ্ঠা) পুনর্নির্দেশের জন্য পেতে পারি না। আমার কাছে <VirtualHost *:443> ... Redirect / https://baseurl/ ... </VirtualHost> তবে ইউআরএল একই থাকে। আমি নন এসএসএল সংস্করণেও একই কাজ করেছি এবং এটি সঠিকভাবে পুনঃনির্দেশ করে। কোন ধারনা?
নিউটেক বিকাশকারী 19
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.