سوال در مورد Virtual Domain

پرسیده شده
فعالیت 1464 روز پیش
دیده شده 1027 بار
1

دوستان عزیز سلام - مشکلی که بهش برخوردم که البته قبلا پرسیده بودم ولی تاپیکش قدیمی شد و خونده نشد سوالم  -- سوالم اینه که بعد از راه اندازی دامنه مجازی دیگه نمیشه از localhost استفاده کرد - و با تایپ localhost به صفحه اولین دامنه مجازی که ایجاد کردم میرم و دیگه صفحه داشبورد رو برام نمیاره - و باید حتما دیگه از روش ایجاد دامنه مجازی استفاده کرد -

مثلا من دامنه مجازی به اسم  php.exp  دارم که براش دامنه مجازی ایجاد کردم

و یه فولدر کنارش به نام  php.test  دارم که در حالت عادی با ادرس  localhost/php.test  در دسترس بود ولی حالا بعد از اینکه دامنه مجازی برای php.exp  ایجاد کردم دیگه مثلا با آدرس localhost/php.test  بهش دسترسی ندارم --و حتما برای هر فولدری باید دوباره دامنه مجازی ایجاد کنم تا دسترسی بهم بده

Object not found!

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.

 

(یه نکته ای غیر ازسوالم این که معمولا سوال هایی که داخل تاپیک دوستان پیش میاد برای افراد و پرسیده میشه دیگه دیده نمیشن -- الان این سوال رو من دوبار در دوتاپیک پرسیدم و دیده نشده و مجبور شدم دوباره یه تاپیک براش بزنم )

فایل پیوست

Hassan En
Hassan En

10 اردیبهشت 99

2
حذف شده

ببینید قبل اینکه VirtualHost ای تعریف کنید، توو تنظیمات فایل httpd.conf داکیومنت روت پیشفرض تعریف شده:

DocumentRoot "C:/xampp/htdocs"

پس تمام درخواست ها این مسیرو باز میکنن.

اما وقتی VirtualHost ای تعریف میکنید، VirtualHost بعنوان دیفالت عمل خواهد کرد و سرور دنبال بهترین تطبیق از روی VirtualHost ها میگرده.

برای مثال شما VirtualHost ای به این شکل تعریف کردید:

<VirtualHost *:80>
    ServerName php.exp
    DocumentRoot c:/xampp/htdocs/php.exp
</VirtualHost>

وقتی در مرورگر آدرس php.exp/ رو وارد میکنید، با توجه به فایل Hosts، درخواستی به آیپی ۱۲۷.۰.۰.۱:۸۰ ارسال میشه که در هدر اون نام آدرس هم قرار داره(Host)، وقتی درخواست به سرور میرسه، با VirtualHost بالا مورد تطبیق قرار میگیرد و مسیر DocumentRoot باز میشود.

حالا شما فرض کنید آدرس php.test یا localhost رو وارد مرورگر میکنید، زمانی که درخواست به سرور میرسد، چون با هیچ ServerName و ServerAlias مطابقت ندارد، اولین VirtualHost از لیست VirtualHost ها(با توجه به آیپی و پورتی که داخل تگ VirtualHost مشخص شده) انتخاب میشود.

داک خود آپاچی:

The default name-based vhost for an IP and port combination
If no matching ServerName or ServerAlias is found in the set of virtual hosts containing the most specific matching IP address and port combination, then the first listed virtual host that matches that will be used.

* قبلترش توضیح اومده، با توجه به آیپی و پورت مشخص شده، وقتی بیشتر از یک VirtualHost شد، اونوقته که ServerName و ServerAlias هاشون باهم مقایسه میشه!

نتیجه: شما یک VirtualHost با علامت * یعنی هر آیپی روی پورت ۸۰ ایجاد کردید، پس تمام درخواست ها با پورت ۸۰ به همین VirtualHost ختم میشه!!

 

با توجه به این توضیحات، اگر VirtualHost ای ایجاد کردید، باید برای هر ServerName یک VirtualHost ایجاد کنید.

برای localhost هم یک VirtualHost باید ایجاد کنید. بهتره ابتدای لیست قرار بدید.

فایل کانفیگ شما به این شکل در میاد:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot c:/xampp/htdocs
</VirtualHost>

<VirtualHost *:80>
    ServerName php.exp
    DocumentRoot c:/xampp/htdocs/php.exp
</VirtualHost>

 

جزئیات رو میتونید در این مقاله بخونید.

فایل پیوست

محسن موحد

توسط

محسن موحد

10 اردیبهشت 99

1
حذف شده

سلام.

کد Virtual Host هاتونو بگذارید.

 

بله. بنظرم خوبه که نوتیفیکیشن واسه ردگیری تاپیک هایی که اشتراک داشتیم اگر پست جدید یا کامنتی اضافه شد متوجه بشیم و دیگری، بالااومدن تاپیک ها با آپدیت شدنش، این دو قابلیت اضافه بشه به سایت.

فایل پیوست

محسن موحد

توسط

محسن موحد

10 اردیبهشت 99

0
حذف شده

الان با این تنظیمات دامین  php.exp  رو دارم - ولی مشکل اینه که دیگه به صورت معمولبه پوشه دیگه ای اگر ایجاد کنم دسترسی ندارم و حتما باید دامنه براش بزنم دوباره -- و localhost  رو هم که بزنم مستقیم وارد دامنه php.exp  میشه

 

به عنوان مثال مثلا یه پوشه  php.test  هم ایجاد کردم که تا براش دامنه مجازی نزنم دسترسی بهش ندارم

فایل پیوست

Hassan En

توسط

Hassan En

10 اردیبهشت 99

0
حذف شده

تصویر

فایل پیوست

Hassan En

توسط

Hassan En

10 اردیبهشت 99

0
حذف شده

ممنونم از راهنماییتون -درسته  برای لوکال هاست هم اگر یک دامین مجازی ایجاد کنیم تقریبا مشکل حل میشه و میشه به بقیه فولدرها هم دسترسی داشت -  مشکلی نداره برای ایجاد دامنه مجازی فقط ServerName , DocumenRoot  رو بنویسیم ؟

فایل پیوست

Hassan En

توسط

Hassan En

12 اردیبهشت 99

0
حذف شده

چرا ترتیب پیام ها کلا به هم ریخته داخل تاپیک ؟؟؟

فایل پیوست

Hassan En

توسط

Hassan En

12 اردیبهشت 99