در این مقاله به معرفی اجمالی فایل .htaccess و نحوه عملکرد آن در وبسرور Apache میپردازیم.
تعریف
htaccess. یا Hypertext Access یک فایل متنی ساده میباشد که در بعضی از وبسرورها از جمله Apache وجود دارد. این فایل که نحوه نمایش صفحات وب را کنترل میکند، چنانچه در مسیر یک دایرکتوری یا فولدر قرار داشته باشد، تمامی کدها و پیکربندیهای تعریف شدهی موجود در این فایل بر روی دایرکتوری مذکور و نیز دایرکتوریهای زیر مجموعه اجرا خواهد شد.
نحوه ایجاد فایل htaccess. بسیار ساده است و با انواع ویرایشگرهای متنی از قبیل Notepad قابل ایجاد و ویرایش میباشد. برای مثال جهت ایجاد این فایل در cPanel کافی است یک فایل با نام htaccess. در دایرکتوری مورد نظر ایجاد و اقدام به اعمال تغییرات مورد نظر در آن نمایید.
بسیاری از کارهایی که نیاز به کدنویسیهای پیشرفته دارند، تنها با نوشتن یک خط کد در این فایل ممکن میگردند ولی نکته حائز اهمیت آن است که فایل htaccess. نسبت به اجرای کدهایی که درون آن قرار میگیرد بسیار حساس میباشد؛ به طوری که کوچک یا بزرگ نوشته شدن حروف در نحوه اجرای آنها تاثیر گذاشته و همچنین وجود هر گونه خطا در کدهای موجود در این فایل باعث از دسترس خارج شدن وبسایت میگردد لذا در مواقع اعمال تغییرات و کدنویسی در این فایل لازم است نهایت دقت را به خرج داد.
به عبارت دیگر، htaccess. یک فایل پیکربندی برای وبسایتها میباشد که توسط وبسرور قابل خواندن و اجرا میباشد بدین معنا که در صورت عدم وجود این فایل، پیکربندی و سیاستهای امنیتی از طریق فایل httpd.conf واقع در وبسرور خوانده میشود و زمانی که فایل htaccess. در مسیر یکی از دایرکتوریها قرار میگیرد وب سرور دستورات درج شده در محتویات درون این فایل را به فایل httpd.conf ترجیح و اولویت می دهد.
وظایف
این فایل که معمولا با نصب CMSهای معروف و Open Source مانند WordPress، Joomla و Drupal به صورت خودکار در مسیر اصلی اسکریپت ایجاد و محتوا سازی می شود، عهدهدار وظایف مهمی نظیر موارد زیر میباشد:
مسدودسازی IPهای خاص
با مسدودسازی IPهای خاص در واقع مجوز ورود و دسترسی به بخشهای مختلف وبسایت از آن IPها سلب می شود که موجب کاهش اثر حملات DDOS، عدم امکان دسترسی به وبسایت توسط IP کشورهای گوناگون و ... میگردد.
جلوگیری از عمل Hotlink
این مهم که با عنوان Hotlink Protection در منوی اصلی cPanel نیز قرار داشته و قابل فعالسازی میباشد، باعث میگردد از کپی شدن اطلاعات شما در وبسایتهای دیگر جلوگیری شود برای مثال چنانچه تصویری در یک دایرکتوری از سرویس میزبانی شما وجود دارد، از نمایش آن تصویر در وبسایتهای دیگر جلوگیری به عمل میآید و همچنین چنانچه فایلی قابلیت دانلود با لینک مستقیم با استفاده از وبسایت شما را دارد و لینک مذکور در وبسایتی دیگر کپی گردیده باشد، کاربران آن وبسایت با کلیک بر روی لینک مذکور ابتدا به آدرس وبسایت شما ارجاع داده میشوند.
اعمال رمز عبور برای دایرکتوری(Password Protection)همانگونه که در مقاله نحوه اعمال رمز عبور برای دایرکتوری در cPanel نیز شرح داده شده است، با اعمال چند خط کد ساده در فایل htaccess. میتوان دسترسی به دایرکتوریها را با تعریف نام کاربری و رمز عبور در فایلهای htpasswd. کنترل نمود.
ارجاع به وبسایتهای دیگراین قابلیت ما را مقدور میسازد تا بازدیدکنندگان صفحهای خاص و یا تمامی بخشهای وبسایت خود را به وبسایتی دیگر ارجاع دهیم. این عمل مزیتهای بسیاری از جمله ارجاع بازدیدکنندگان از وبسایت قدیمی به وبسایت جدید خود، ارجاع به آدرسهای امن(SSL)، افزایش رتبه در SEO و ... دارد.
کنترل نمایش لیست فایلهای درون یک دایرکتوری (Directory Browsing)همواره پیشنهاد میگردد از امکان نمایش محتویات درون فایلها و دایرکتوریها جلوگیری به عمل آید زیرا در صورت عدم فعال بودن این قابلیت و وجود اطلاعات مهم در دایرکتوریهای مختلف، (برای مثال وجود فایلی فشرده با پسوند .zip حاوی فایلهای مهم در یک دایرکتوری)، امکان سرقت اطلاعات موجود در آن بدون خواست شما و اطلاع قبلی وجود دارد. همچنین از آن مهمتر در صورت قابلیت نمایش محتویات درون دایرکتوریها، امکان مشاهده و جستوجو جهت یافتن فایلهای آسیبپذیر توسط هکرها نیز فراهم خواهد شد.
علاوه بر موارد فوق امکان فعالسازی قابلیتهای بسیار دیگری از قبیل تغییر فایل Index پیشفرض وبسایت یا دایرکتوری، تغییر محتویات نمایشی صفحات مربوط به خطاهای 404،500،403 و ...، تنظیم ساعت بر اساس TimeZoneهای مختلف، جلوگیری از دسترسی به فایلهای مختلف نظیر php.ini، حصول اطمینان از دانلود فایلهای رسانهای به جای پخش آنها و ... در فایل htaccess. مقدور میباشد.
نکات قابل توجه:نحوه دسترسی به htaccess. در سرور ها cPanel از اینجاقابل مشاهده است.