htaccess و نحوه کار آن – ابزاری مهم در بهینه سازی

سلام دوستان،

امروزه در اکثر سیستم های مدیریت محتوا یک فایل با نام .htaccess دیده می شود. این فایل را با نام distributed configuration files می شناسند و در واقع برای کنترل آپاچی هستند که روی یک شاخه و تمام زیر شاخه های آن عمل می کنند.

اين فايلها براي كاركرد در كنار فايلهاي معمولي HTML يا PHP قرار ميگيرن و پسوند اونها فقط .htaccess ميتواند باشد.
توجه: با تغییر تنظیمات پیش فرض آپاچی می توان پسوند این فایل را به پسوند دلخواه تغییر داد.

این فایل ها از تگ های مخصوص آپاچی استفاده می کنند و البته CGI script هم می پذیرند.

حال شاید سوال کنید – چه خدمتی به ما در بهینه سازی این ابزار می کند؟

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

 یک نکته هست که باید یادآور شوم:
– از آنجا که اکثریت کاربران اینترنت قبل از انجام کارها بر روی سرور، از هاست داخلی/خانگی(Local host) فعالیت می کنند، ویندوز اجازه ایجاد این فایل را به دلیل اینکه بدون نام است را به ما نمی دهد:

$file=».htaccess»; $fp=fopen($file,»w+»); fwrite($fp,»#is here our htaccess»);

راه دوم:
استفاده از Command prompt ویندوز.
C:\>echo testing create .htaccess file > .htaccess

راه سوم:
1- نت پد رو باز کنید.
2- File->Save As
3- نام .htaccess وارد کنید.
4- ذخیره کنید.

توجه: اگر یک حرف یا یک فاصله تغییر کند، باعث دریافت خطای Server error می شود.

کاربرد اول – تغییر صفحات خطا
شما ميتوانید صفحات خطای 404، خطای 500 و … را به دلخواه خودتان طراحي و به اين طريق بشناسانيد:

ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

کاربرد دوم – مخفي كردن فرمت ها/شناساندن فرمتهاي جديد (add mime type)
يك راه امنيتي كه من واقعا پيشنهاد ميكنم واسه حفاظت از اسكريپت هاي PHP شما اين هست كه آنها PHP نباشند!
برای مثال: فایل PHP شما با فرمت ASP باز شود.

AddType application/x-httpd-php .asp .jsp

توضیح: Addtype به ما می گوید که ميخواهیم يک فرمت جديد بشناسانيم بعد نوع آن فايل هاي خاص با فرمت دلخواه خود ميگوییم مثلا image/png يا text/css بعد ميگوییم كه چه فرمتي رو از اين به بعد به عنوان نوعي كه گفته ایم بشناس
اما فرض كنيد ميخواهید از shtml/ssl در سايتتون استفاده كنيد و نياز به شناساندن اين فرمتها به آپاچي داريد.

AddType text/html .shtml
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes

کاربرد سوم – تغییر index.php/index.html
با کد زیر هم ميشود به وب سرور امر كرد كه كدام فايل به عنوان صفحه نخست فرستاده شود.

DirectoryIndex homearea.php

کاربرد چهارم – ریدایرکت کردن
استفاده از کد های جاوا یا دیگر کد ها برای ریدایرکت کردن صفحه به مرور زمان جای خود را به دستور زیر داده است.

Redirect /Dirold/old.html http://site.com/DirNew/new.html

کاربرد پنجم – تأمین امنیت با IndexIgnore
درصد بالايي از هكرها بعد از نفوذ با جستجو كردن در دايركتوري هاي وب سايت شما و گشتن به دنبال پوشه ها/فايلها با سطح دسترسی مطلوب كارشان را تكميل ميكنند و البته خيلي ها از اول از روش ديد زدن پوشه هايي كه حاوي موتور اسكريپت ها و اطلاعات با ارزشي هستن مثلا فايل config را در بردارن به سايت نفوذ ميكنند

برنامه نویسان واسه جلوگيري از اين امر یک فایل inde.html خالی ایجاد می کنند اما توسط کد زیر می توان يه صفحه مربوط به خالي بودن پوشه را نشان داد يعني هيچ چیزی در اين شاخه نيست در حالي كه شاخه ميتواند پر از فايل باشد.

IndexIgnore *

اگر بخواهید یک فایل برای مثال: PDF محافظت شود، باید از دستور زیر استفاده کنید.

IndexIgnore application/pdf

کاربرد ششم – زبان پیش فرض (DefaultCharset)
مسلماً از تنظیم کردن زبان وب سایت خود در بخش هدر خسته شده اید! با دستور کوتاه زیر به آپاچی می گوییم که همیشه صفحات را با زبان خاصی ارسال کن.

AddDefaultCharset utf-8

کاربرد هفتم – عدم دسترسی برای همه (deny from all)
این دستور برای محافظت آن دسته از فایل هایی که حاوی اطلاعات محرمانه ای هستند بکار می رود.
برای مثال: فایل هایی که اطلاعات دیتابیس، اطلاعات سیستم در آن ذخیره می شود.

<Directory>
Order Deny,Allow
Deny from All
</Directory>

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

order allow,deny
deny from 123.45.6.7
deny from 012.34.5.
allow from all

کاربرد هشتم – محدود کردن یک عملیات خاص
استفاده از دو دستور زیر برای جلوگیری از هکر های تازه وارد FSOCKOPEN بسیار مؤثر است.

<Limit>
Deny from All
</Limit>

<LimitExcept>
Deny from All
</LimitExcept>

کاربرد نهم – موتور نوشتن مجدد (Rewrite Engine)
نکته: پیش از هرچیزی بررسی کنید که آیا Apache RewriteEngine فعال است یا خیر! اگر دسترسی دارید می توانید در فایل httpd.conf دستور زیر را اضافه کنید.

LoadModule rewrite_module modules/mod_rewrite.so

نکته: در لوکال هاست می توانید با استفاده از جستجو ویندوز همان فایل را پیدا کرده و دستور بالا را اضافه کنید!

این همان چیزی هست که برای زیر مجموعه دامنه (ساب دامین) بکار می رود. با یک مثال توضیح خود را تکمیل می کنم.
برای مثال: شما یک وبلا با آدرس http://www.site.com/blog داشتید. حالا آدرس شما به http://www.site.com/blog1 تغییر کرده است.

RewriteEngine on
RewriteRule ^blog(/.*)?$ /blog1$1 [R=permanent

توجه: دستور بالا هیچ رابطه ای با ریدایرکت/Redirect ندارد.

 

سپاس فراوان از دوست خوبم Y.P.Y که مرا در نوشتن این آموزش یاری کردند.

Advertisements

یک دیدگاه برای ”htaccess و نحوه کار آن – ابزاری مهم در بهینه سازی

  1. سلام علیرضا جان. داشتم وبلاگت رو می خوندم دیدم چند نکته هست که بایان کنم بهتره
    مطالبت عالی هستند. اما
    1- سایز فونت هات بزرگن
    2- کد ها رو با پلاگین های مربوطه مرتب قرار بده. من خودم وقتی داشتم میخوندم چشمام اذیت شد

    • چشم آقا صالح لطف دارین شما. حتماً اینکارو می کنم. حقیقتش من بیشتر به مطالب رسیدم تا قالب. دلیل من برای اینکه دست به قالب نزدم این هست که چون ارتقاء ندادم نمی تونم هر کاری کنم و تنها قالبی هست که همه امکانات وردپرس را در خود دارد. مثلاً بقیه قالب ها عنوان را نشان می دهند اما این در صفحه اول شعار را هم در کنار عنوان نشان می دهد. اما قول میدم بهترش کنم اگر همه خوانندگان مثل شما همکاری داشته باشند و تمام ایرادات بلاگ حاشیه وب و محتوایش را در نظرات بیان کنند 🙂 بازم ممنونم 😡

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s