• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
htaccess و نحوه کار آن – ابزاری مهم در بهینه سازی
#1
سلام دوستان،

منبع: حاشیه وب

امروزه در اکثر سیستم های مدیریت محتوا یک فایل با نام .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-

کاربرد هفتم - عدم دسترسی برای همه (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$[R=permanent 
توجه: دستور بالا هیچ رابطه ای با ریدایرکت/Redirect ندارد.
غایب
#2
راه ساده ی دیگه ای که برای ساخت فایل های htaccess وجود داره ساخت این فایل از طریق dreamweaver هست که شما در قسمت مدیریت فایل های وب سایتتون همون جوری که فایل های دیگه ی وبسایتتون رو ایجاد می کنین می تونین این فایل رو هم ایجاد کنین و هیچ مانعی برای نامگذاری فایلهاتون وجود نداره .
تشکر شده توسط : hamid_80386
#3
همچنین سایت هایی همانند سایت htaccess editor هستند که امکان ایجاد این فایل رو بصورت بسیار ساده میدن.
غایب
تشکر شده توسط : smhnaji
#4
سلام دوست عزیز

این فایل .htaccess رو باید کنار فایلام بزارم؟

اونو گزاشتم کنار فایلام ولی کار نمیکنهSad

من تو سرور محلی تستش کردما

چه تنظیماتی رو باید انجام بدم؟
تشکر شده توسط :
#5
نور به قبرت بباره علیرضا جان :دی (البته بعد صد سال)
من می خوام پسوند پی اچ پی دیده نشه آخرش
مثلن index.php بشه /index

چی کار کنم اونوخ؟
همه جوره اش رو داریم ظاهرن
تشکر شده توسط :
#6
(۱۳۸۸ بهمن ۰۵, ۱۲:۳۷ ق.ظ)mojtabadj نوشته: سلام دوست عزیز

این فایل .htaccess رو باید کنار فایلام بزارم؟

اونو گزاشتم کنار فایلام ولی کار نمیکنهSad

من تو سرور محلی تستش کردما

چه تنظیماتی رو باید انجام بدم؟

سلام از ماست،

در اولین صفحه (روت) باید قرار داده شود! در بعضی از سرور ها به دلیل تنظیمات این فایل پس از آپلود نشان داده نخواهد شد! اگر با موفقیت آپلود کردید و مشاهده نکردید، شک نکنید. سرور سروره عزیز دلم Shy
(۱۳۸۸ بهمن ۰۵, ۰۱:۳۶ ق.ظ)molana نوشته: نور به قبرت بباره علیرضا جان :دی (البته بعد صد سال)
من می خوام پسوند پی اچ پی دیده نشه آخرش
مثلن index.php بشه /index

چی کار کنم اونوخ؟

یک سطح دسترسی باید برای آدرس نوشته و سپس یک آدرس جدید را بدون پسوند مانند همان مثال خودتان قرار دهید. متاسفانه فراموش کردم چی باید بنویسیم اما اگر کمی پرس و جو کنید مشکلتون حل میشه Blush
غایب
تشکر شده توسط :
#7
سلام
خسته نباشید
میخواستم بدونم فایل htaccess باعث میشه سایت از گوگل حذف بشه
من سایتم از سایتهای پربازدید بوده و روزانه 10 هزار به بالا ای پی داشته ولی الان چند روزه که به شدت افت کرده و به 500 ای پی رسیده و مطالبم در گوگل ایندکس نمیشه و کلا از گوگل حذف شده
فکر کردیم مشکلش گوگل پنگوئن باشه ولی هیچ ایمیلی از گوگل دریافت نکردیم و چیزی نبوده که سایتمون اسپم شناخته بشه و امروز که با هاستینگ سایتم حرف زدم گفتن:
مشکل وبسایت شما به خاطر پیکربندی اشتباه فایل htaccess می باشد که دسترسی برخی ای پی را مسدود کردید و مشکل برطرف شد

میخواستم بدونم این امکان هست که سایت بخاطر فایل htaccess از سرچ گوگل حذف شده باشه و دیگه مطالبه سایتو ایندکس نکنه؟؟؟

ممنون
تشکر شده توسط :
#8
محتوای فایل htaccess رو بذار اینجا
تشکر شده توسط :
#9
خوب اگه هاستت گفته توی htaccess دسترسی ای پی محدود کردی اره میشه!! باید بقول رضا فایلش رو بزاری اینجا ببینیم کردی یا نکردی!!Smile
اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
آلبر کامو
تشکر شده توسط :
#10
سلام دوست عزیز و ممنون از مقاله خوبتون
من یک سوال داشتم . چه کدی را باید در این فایل قرار بدم تا تمامی صفحات وبسایت به اجبار با http باز شوند و فقط چند صفحه خاص با https ?
البته این سوال به این دلیل است که وقتی یک صفحه رو اجبار میکنیم با https باز شود بعد که از توی اون صفحه لینک های دیگرو انتخاب میکنیم اونها هم خود به خود با https باز میشوند و الی آخر !!
با تشکر
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان