واضح آرشیو وب فارسی:سایت ریسک: htaccess و نحوه کار آن Cyletech 23 خرداد 1388, 15:00سلام دوستان، منبع: حاشیه وب () امروزه در اکثر سیستم های مدیریت محتوا یک فایل با نام .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- .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 کاربرد پنجم - تأمین امنیت با 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 فعال است یا خیر! اگر دسترسی دارید می توانید در فایل دستور زیر را اضافه کنید. LoadModule rewrite_module modules/mod_rewrite.soنکته: در لوکال هاست می توانید با استفاده از جستجو ویندوز همان فایل را پیدا کرده و دستور بالا را اضافه کنید! این همان چیزی هست که برای زیر مجموعه دامنه (ساب دامین) بکار می رود. با یک مثال توضیح خود را تکمیل می کنم. برای مثال: شما یک وبلا با آدرس داشتید. حالا آدرس شما به تغییر کرده است. RewriteEngine on RewriteRule ^blog(/.*)?$ /blog1$1 [R=permanentتوجه: دستور بالا هیچ رابطه ای با ریدایرکت/Redirect ندارد.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 559]