کمی درباره آپاچی و چند دستور کلیدی در آپاچی برای صاحبان سایت و سرور

مقدمه

آپاچی معروف ترین و اولین وب سرور دنیا بوده است که سالهای سال است روی اکثر پلت فرم های موجود کار میکند و  راندمان خوب بهتر از IIS و ضعیف تر از نسل های جدید مثل nginx  همیشه در بالاترین جایگاه قرار داره از نظر استفاده دارد.

در کارکرد آپاچی

آپاچی کارش وب سرور هستش درواقع یک توزیع کننده هستش، یعنی چی ؟ ببینید مساله رو با یه مثال تعریف می کنیم من میخوام وارد یه ارگان شم اطلاعات بگیرم ازش خب اون منطقه ورود ممنوع هستش و من نمیتونم با کارمندانش ارتباط داشته باشم ولی یه نفری اونجا وجود داره(نامه گردان) هر نامه ای بهش بدی از روی نامه وارد ارگان میشه و بخش مورد نظر شما رو پیدا می کنه و در انتها نامه رو به دست صاحبش میرسونه و اگر جواب داشت برای شما میاره. سرور شما حکم سازمان رو داره و آپاچی حکم اون نامه گردان رو داره.

این نامه گردان اصلا با متحوای نامه شما کار نداره.
آدم گیری هم هستش اشتباه آدرس بدی یا بد خط باشی خبری از جواب صحیح نیست
ولی خیلی دقیق هستش
کمی هم تنبل هستش

خب با این مثال تقریبا مشخص شد که آپاچی چی کار میکنه خب اجازه بدین فنی تر صحبت کنیم. آپاچی با توجه  به  header های دریافتی ادرس ها رو دریافت می کنه و به php پاس میده اگر پاسخی داشت php برمیگردونه (پس php به تنهایی قابل اجرا نیست) یعنی همون نامه هه خب ما یه هدر رو همینجوری آزمایشی نگاه می کنیم:

برای آدرس:

http://4xmen.ir/category/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%B9%D8%A7%D9%85%D9%84/%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/

اطلاعات بالا به ip ما ارسال شده در اینجا اول نوع درخواست مشخص میشه و بعد آدرس درخواست و ورژن پروتکل هم که همیشه هستش.
بعد مشخص میشه کدام هاست مورد نظر است
و بعد نوع داده های قابل پذیرش هستش
نوع کد گذاری
زبان مورد استفاده مرورگر (زبان انسانی مثل پارسی، انگلیسی و …)
آدرس انتقال دهنده به این صفحه ( آدرس صفحه ای که از اون صفحه به صفحه جاری منتقل شدید)
و بعد اطالاعات کاربری شما ارسال میشود.

حالا پاسخ از آپاچی:

  • نسخه پروتکل
  • زمان ارسال
  • انکدینگ محتوا
  • مشخص میکنه سرور آپاچی هستش
  • زمان انقضای صفحه
  • اطلاعات مربوط به کش
  • طول اطلاعات ارسالی
  • نوع محتوا
  • و بعد محتوای ارسالی از php

خب پس دیدین این درخواست ها چطور ارسال و پاسخ ها دریافت میشن.

پس هر موقع ما بخوایم این درخواست ها رو عوض کنیم مراجعه می کنم به آپاچی.

تغییرات در آپاچی چطور انجام میشود.

ساده ترین روش این هستش شما بدون دستکاری پیکربندی ( config ) با فایل های htaccess این کار رو انجام بدین . فایل htaccss معمولا در فولدر فعلی و زیر مجموعه هاش به خوبی جواب میده و در جا هم جواب میده نیازی نیست ۳ ساعت از روش بگذره اگر تغییرات رو انجام دادین و کار نکرد کدتون ایراد دارد نیاز به صبر کردن نمی باشد. ( یادمه اون اوایل برای هر تست چون نمیدونستم ساعت ها صبر می کردم یعنی پوستی از ما کنده شد ها :D)

نکته: اما این فایل ها در لینوکس غیر قابل نمایش میباشند باید فایل های مخفی به نمایش در بیاورید تا این فایل ها رو ببنید. یه بهتر بگیم هر فایل و فولدری که با . یا نقطه شروع میشه مخفی هستش.

برای این که کدهاتون تمیز باشه و بدون ایراد کار کنه بهتره کد هاتون رو بین بلاک :

قرار بدین در فایل های htaccess مثال خط وسط بالا هر خطی با # شروع شود کامنت هستش و  در عملیات اعمال نمیشوند.

و در صورت اشتباه مهلک ارور 500 معمولا نمایش داده میشود.

با توجه به این توضیحات میتونین حالا از دستورات زیر استفاده کنید.

دستور نمایش و عدم نمایش error در php

اگر مقدار رو on کنید خطا ها در php نمایش داده میشوند و برعکس اگر این مقدار رو off کنید باعث میشه خطا ها نمایش داده نشوند.

دستور برای عدم لیست شدن فایل ها در پوشه هایی که index ندارند:

برای عدم نمایش همه چیز حتی فولدر ها

برای فقط چندین پسوند:

برای غیر فعال کردن کلی این حالت :

تغییر صفحه پیش فرض از index

همیشه در آپاچی صفحه پیش فرض index نام دارد و معمولا index.html به index.php الویت داره حالا اگر  دوست داشته باشیم این اسم رو عوض کنیم به همین سادگی میتونیم :

میتونید چندین پیش فرض با اولیت تعریف کنید:

اولیت با سمت چپ تر هستش.

غیر فعال کردن عملکرد فایل های php

به همین سادگی میتوین این رو محدود به فایل هم بکنید:

پسوند های دیگر با عنوان  php  اجرا شوند

مثلا برای کلاه بر دارا این خیلی خوبه مشتری نادان بخوره به تورت بگه من میخوام سایتم با asp.net باشه ابتدا فایل های php  رو به aspx تبدیل می کنی و بعد کد زیر رو میزنی:

به همین سادگی

rewrite مهمترین بحث های apache میباشد

redirect یعنی چی: یعنی بازدیدکننده رو به زور به یک صفحه ی دیگر بفرستید، اما rewrite علاوه بر redirect میتونه اطلاعات اون رو بفرستین به صفحه ی دیگری کد زیر توجه کنید:

خب خط اول و آخر مشخص هستش در بالا توضیح دادیم
و بعد یک توضیح اضافه شده
سپس موتور RewriteEngine رو روشن میکنید
بعد هر خطی که با RewriteCond شروع میشه یعنی شرط برای rewrite هستش در اینجا سه تا شرط ذکر شده یعنی اگر فایل درخواست شده نه directory که با منات -d نمایش داده میشه نه فایل که نمادش -f می باشد و نه لینک که شبیه میانبر در لینوکس است -l نمادش میباشد باشد یعنی شامل هیچ یک نشه به شما اجازه rewrite صادر میشه و در خط RewriteRule نحوه rewirte رو مشخص میکنید در مثال بالا $1 یعنی اون فایلی درخواست شده که میفرستیم به index.php با نام متغییر myvar و شما در صفحه index اگر ۳ شرط بالا برقرار بود میتونین با :

نتیجه رو ببنید.

redirect

که توضیح داده شد هدایت اجباری به صفحه دیگر میباشد فرض کنید شما میخواین آدرس سایتتون حتما با www شروع بشه باز هم باید rewrite کنید به این شیوه:

در خط اول کد ما آدرس هایی که با example.com شروع شدن و www ندارند و توسط RewriteRule هدایت میکنیم به همون آدرس که $1 نمادش هستش فقط یه www ابتداش اضافه میکنیم توجه داشته باشید RewriteEngine باید روشن باشد.

این چند دستور ساده و کلیدی امیدوارم مفید واقع بشه

‌A1Gard

اول از همه کوچک ترین عضو مجموعه 4xmen بنده حقیر هستم. در ثانی یک توسعه دهنده هستم زمینه های تخصصی کارم :‌ Delphi, PHP, C++ ,Python, JavaScript, Unity game engine, C#, asm و علاقه مند به لینوکس، RCE ، کریپتوگرافی هستم. تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق

More Posts

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *