|
همونطور که خیلی از شما میدونید این مبحث خیلی طولانی هست از این رو خلاصه
نویسی توی این مقاله خیلی زیاده اما مسلما منظور من برای کاربران حرفه ای
و آماتور روشنه یه سری مثال ها رو از اینترنت پیدا کردم یعنی کرده بودم
برمیگرده به سال ها پیش . . . برای شروع فکر میکنم همه بدونید که فايل .htaccess يا Distributed
Configuration Files در واقع فايلهاي مخصوص كنترل آپاچي هست مکان خاصی
ندارند روی هر شاخه و زیر شاخه تاثیر میزاره در واقع در کنار فایل های
معمولی مثل php ,html قرار میگیره یعنی کاملا در دسترس هستند نام این فایل
ها .htaccess هست یعنی صرفا همین -البته میشه یه سری تنظیمات رو دستکاری
کرد و نام رو تغییر داد- اين فايلها از تگهاي مخصوص آپاچي استفاده ميكنن
البته cgi script هم مي پذيرن
HTML clipboard
كاربرد اول- تغيير صفحات خطا برای نمایش صفحات خطا مثل 404 يا 500 و ... میتونید صفحات دلخواه خودتون رو طراحي و
به اين طريق نمایش بدید مسلما خیلی حرفه ای هست وب سایت هایی که برای کوچکترین موارد پیش بینی صورت بگیره
کد:
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html
كاربرد دوم- نمایش پسوند دلخواه صفحات (add mime type) يك راه امنيتي كه من واقعا پيشنهاد ميكنم واسه حفاظت از اسكريپت هاي php شما اينه
كه اونا php نباشن !! بله يعني مثلا asp يا jsp باشن اينطوري یه مقدار مطلب پیچیده
میشه برای تشخیص
کد:
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
كاربرد سوم- redirect ریدایرکت
کد:
Redirect /Dirold/test.html http://site.com/DirNew/new.html
توضيح: در اينجا مرورگري كه درخوست فايل test.html رو در شاخه dirold داشت بره
به آدرس http://site.com/DirNew/new.html دوستانی که در زمینه SEO فعالیت دارند میدونند که این ریدایرکت چقدر موثره كاربرد چهارم - IndexIgnore بسیاری از هكرها بعد از نفوذ با browse كردن در دايركتوريهاي سايت شما و گشتن به
دنبال فولدرها يا فايلها با پرميشن مطلوب كارشونو تكميل ميكنن و البته خيلي ها از
اول از روش ديد زدن فولدرهايي كه حاوي موتور اسكريپت ها و اطلاعات با ارزشي هستن
مثلا فايل config رو در بردارن به سايت نفوذ ميكنن programer ها جهت جلوگيري از اين كار ميان و يه index.html خالي درست ميكنن اما با
اين كد ميشه يه صفحه مربوط به خالي بودن فولدر رو نشون داد يعني هيچي تو اين شاخه
نيست در حالي كه شاخه ميتونه پر فايل باشه ... خیلی جالبه الان میتونم چندتا سایت پربازدید رو معرفی کنم که این مشکل رو دارند
نکته خیلی جالبتر اینه که من مدتی پیش یک اسکریپت به دستم رسید داشتم ویرایشش
میکردم و توابع اسمارتی رو بررسی میکردم که دیدم چندتا فایل کم هست یعنی چندتا صفحه
نافص بود هرچقدذر نوشتم نتونستم اتصالات رو پیدا کنم تا اینکه برای تست رفتم وارد
سایت تولید کننده این نرم افزار شدم از اونجایی که نسخه دمو روی سرور Run شده بود
رفتم به دایرکتوری موردنظر با کمال تعجب دسترسی در پوشه تمپلیت مربوط به فایل های
TPL باز بود منم با کمال لطف فایل های موردنظر رو برداشتم به همین راحتی شاید در ظاهر استفاده از این طرفند خیلی پیش پا افتاده باشه اما میدونم خیلی از
افراد به آسونی از کنارش میگذرند
- اگه مثلا خواستيد فقط يه نوع فايل محافظت شه مثلا فقط فايلهاي pdf مينويسييد :
کد:
IndexIgnore application/pdf
كاربرد پنجم - از index.php يا index.html خسته نشديد؟ با اين كد هم ميشه به وب سرور امر كرد كه كدام فايل به عنوان صفحه نخست نمایش داده
بشه
کد:
DirectoryIndex homearea.php
homearea.php رو به هر فايلي با هر نامي تغيير بديد. - DirectoryIndex يه فاصله و بعد نام فايل با هر فرمتي كاربرد ششم - DefaultCharset بسیاری از مشکلات دوستان نمایش انکودینگ صفحات اینترنتی هست با دستور زیر میتونید
آپاچی رو مقید کنید تا Charset موردنظر شما رو ایجاد کنه
کد:
AddDefaultCharset utf-8
كاربرد هفتم - deny from all جهت حفاظت فایل های باز ارزش ولي محافظت نميشن ( مثلا mt-config.cgi ) اين كد ميگه
كه هيچ مرورگر ي نتونه سورس اينها رو ببينه
کد:
<Directory />
Order Deny,Allow
Deny from All
</Directory>
البته میشه این دسترسی رو فقط واسه یه آی پی محدود کرد
کد:
order allow,deny
deny from 123.45.6.7
deny from 012.34.5.
allow from all
كاربرد هشتم -امنیت بیشتر دو تا كد امنيتيه ديگه
کد:
<Limit POST PUT DELETE>
</Limit>
کارش که مشخصه فکر کنم
کد:
<LimitExcept POST GET>
</LimitExcept>
شما به بومبرينگ اعتقاد داريد ؟ اين كد جلوي FSOCKOPEN رو میگیره كاربرد نهم - rewrite engine اول از همه Apache RewriteEngine بايد در وب سرور شما فعال باشه . اگه دسترسي داريد
ميتونيد اين خط رو در httpd.conf اضافه كنيد :
کد:
LoadModule rewrite_module modules/mod_rewrite.so
اگرم بهش دسترسي نداريد اين كد هم شايد بتونه كار كنه بايد تو همون htaccess كپي
كنيد
کد:
<IfDefine ReverseProxy>
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/libproxy.so
</IfDefine>
اين همون چيزيه كه واسه ساب دومين مجازي هم به كار ميبريم من يه مثال سادشو واستون
ميزنم فرض كنيد يه وبلاگ داشتيد با اين آدرس
http://www.sajadonline.com/sajad حالا بلاگتون آدرسش عوض شده به اين
http://www.sajadonline.com/SajadOnline البته دقت داشته باشيد
اين هيچ ربطي به redirct نداره **این مورد رو دوستانی که به SEO وارد هستند میتونند متوجه بشن که ریدایرکت با
ریرایت خیلی فرق داره از نظر نتیجه ای که در اینده برای ما در برخواهد داشت
کد:
RewriteEngine on
RewriteRule ^ehsan(/.*)?$ /knowhow$1 [R=permanent]
یکی از بهترین امکاناتی که اپاچی بهتون میده بهش mod_rewrite هستش که باعث میشه
سایتتون خیلی تمیزتر بنظر بیاد و به عبارتی SEO بشه !!! تو هرجایی که شما بخواید از mod_rewrite استفاده کنید نیاز دارید که کد
کد:
Options +FollowSymlinks
RewriteEngine on
رو در فایل تون قرار بدید بزارید یک مثال بزنم , میخوایم تمام صفحات php رو تبدیل کنیم به html :
کد:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*).htm$ $1.php [nc]
در دستور بالا ما گفتیم هر فایل php بود تبدیلش کن به .htm ولی این دلیل براین
نیست که فرمت فایل عوض میشه نه!!! بلکه به هردو صورت دسترسی به فایل امکان پذیر هست
برای مثال اگه یه فایل test.php داشته باشیم هم میتونیم با اسم test.htm بهش دسترسی
پیدا کنیم و هم از test.php . [nc] : این دستور یعنی No Case یا همون case-insensitive
|