htaccess چیست
فایل های htaccess حاوی دستوراتی هستند که وب سرویس آپاچی آنها را اجرا می کند. apache خود دارای فایل کانفیگ مستقل و جامعی است به اسم httpd.conf اما در سرور های اشتراکی هر هاست علاقه مند است دستورات خود را اجرا و اعمال نماید و امکان درج همه آن ها در فایل اصلی نیست. در ضمن ضرروری است هر هاست در سطح فایل ها و فلدر ها و دایرکتوری خود دستورات آپاچی را اجرا کند. برای همین می توان برای هر هاست حداقل یک فایل htaccess در نظر گرفت که در root هاست قرار می گیرد و روی همه دایرکتوری ها و زیر دایرکتوری ها دستورات آپاچی را اجرا می کند. دستورات آپاچی اصطلاحا دایرکتیو نامیده می شوند و به صورت key-value نوشته می شوند. این دستورات رفتار پیش فرض آپاچی را تغییر می دهند.
مزایای استفاده از htaccess
استفاده از htaccess برای طراحان وبسایت به زبان php لذت بخش است. زیرا دست آن ها را برای طراحی ساختار و پیکربندی وبسایت باز می کند. طراح سایت به راحتی می تواند کد های آپاچی خود را درون فایل htaccess بنویسد و با اجرای آن ها کارایی وبسایت را بالا ببرد. مثلا آدرس ها را rewrite کند، دسترسی ها را محدود کند و...
معایب استفاده از htaccess
استفاده آزادانه از htacces همیشه هم خوب نیست و معایبی دارد. اولین ایراد استفاده از این قابلیت افت کارایی و سرعت آپاچی است. وقتی قابلیت استفاده از htccess در همه فلدر ها باز شد( (Allowoverride آپاچی در همه فلدر ها بررسی می کند آیا فایل htccess ای وجود دارد یا خیر؟ و اگر وجود داشته باشد باید کد آن را اجرا کند و رفتار پیش فرض خود را عوض کند. این کار باعث کاهش سرعت اجرای آپاچی می شود.
همچنین با باز گذاشتن دسترسی و اجرای کد های htccess ممکن است مجوز هایی داده شود که از کنترل خارج باشد و باعث به وجود آمدن باگ های امنیتی در تنظیمات سرور شود.
دستورات پر کاربرد htccess
- تغییر پسوند فایل
- کش کردن فایل های css و js
- مدیریت ارور های 404، 500 و...
- ریدایرکت کردن آدرس های قدیمی به جدید
- قرار دادن پسورد روی یک فایل یا دایرکتوری
- بلاک کردن IP با فرمت خاص
- دسترسی یا عدم دسترسی به دایرکتوری ها