فایل htaccess ابزاری بسیار مفید برای ایمنسازی یک سرور وب، تعیین هدایتها یا مشخص کردن صفحات خطای سفارشی است.با وجود آنکه نامش رنگوبوی فنی دارد، راهاندازی آن بسیار ساده است و پس از ایجاد، امکانات متنوعی برای پیکربندی در اختیار قرار میدهد. بیآنکه نیازی به تغییر در تنظیمات اصلی سرور باشد. یک فایل پیکربندی سطح دایرکتوری (htaccess) فایلی است که برای تغییر عملکرد یک سرور وب استفاده میشود.
این فایل اغلب در سرورهای Apache استفاده میشود و برای کاربران وردپرس مفید است تا قوانین امنیتی، کش یا هدایت را تعیین کنند.
فهرست مقاله
Toggleفایل htaccess چیست؟
فایل htaccess (مخفف Hypertext Access) یک فایل پیکربندی سطح دایرکتوری در وبسرور Apache است که به مدیر سایت اجازه میدهد بدون نیاز به دسترسی مستقیم به تنظیمات اصلی سرور، رفتار آن را در پوشههای خاص کنترل کند. از این فایل میتوان برای انجام کارهایی مانند ایجاد هدایتهای 301، فعالسازی نسخه امن سایت (HTTPS)، تعیین صفحات خطای سفارشی، محدود کردن دسترسی کاربران بر اساس IP یا حتی محافظت از پوشهها با رمز عبور استفاده کرد.
فایل htaccess معمولاً در ریشهی هاست یا پوشهی اصلی وبسایت قرار دارد و نقش بسیار مهمی در امنیت، بهینهسازی و مدیریت وبسایتهای مبتنی بر Apache ایفا میکند.
فایل htaccess چگونه کار میکند؟
1. دستور AllowOverride
برای کار کردن، فایل htaccess ابتدا نیاز به پیکربندی مناسب دستور AllowOverride دارد. این دستور تعیین میکند که در چه شرایطی فایل دسترسی وب (htaccess) میتواند قوانین خود را اعمال کند.
به عنوان مثال: اگر سرور قرار است به طور پیشفرض قانون A را اعمال کند، اما فایل اچتیاکسس اعلام کند که قانون B به جای آن اعمال شود، آنگاه قانون B اعمال خواهد شد مشروط بر اینکه دستور اجازه بازنویسی این تغییر را مجاز بداند.
2. آخرین htaccess اولویت دارد
هنگامی که تضاد قوانین بین فایل اچتیاکسس یک دایرکتوری و یکی از زیرشاخههای آن وجود دارد، قوانین htaccess زیرشاخه اعمال میشوند، زیرا این قوانین جدیدترینها در ساختار درختی هستند.
به عنوان مثال: فرض کنید یک دایرکتوری A وجود دارد که شامل زیرشاخههای A1، A2 و A3 است. قوانین اچتیاکسس دایرکتوری A نیز به A1، A2 و A3 اعمال میشوند. اما اگر یکی از قوانین زیرشاخه A1 با یکی از قوانین دایرکتوری اصلی A در تضاد باشد، قانون A1 اعمال خواهد شد.

چرا از فایل htaccess استفاده کنیم؟
به طور کلی، فایل htaccess زمانی مفید است که بخواهیم عملکرد یک سایت وب را بدون دست زدن به فایلهای پیکربندی تغییر دهیم.
مثالهایی از موقعیتهایی که فایل htaccess مفید است:
- انجام هدایتهای 301
- استفاده از پروتکل HTTPS به جای HTTP
- محافظت از صفحات خاص با رمز عبور
- ممنوع کردن دسترسی به سایت برای برخی آدرسهای IP
- مجاز کردن دسترسی به سایت برای برخی آدرسهای IP
- نمایش صفحات خطای 404 مشخص
آموزش ساخت htaccess
برای آموزش ساخت htaccess کافی است بدانید این فایل در حقیقت یک فایل متنی ساده است که با ویرایشگرهایی مانند Notepad یا VS Code ساخته میشود. در ادامه یاد میگیرید چگونه فایل htaccess بسازیم و آن را در محل درست سرور قرار دهید.
چگونه یک فایل htaccess به صورت دستی ایجاد کنیم؟
ایجاد یک فایل اچتیاکسس بسیار ساده است: کافی است یک فایل در ریشه سرور وب ایجاد کنید و آن را «htaccess» نامگذاری کنید، که به معنی دسترسی ابرمتن (Hypertext Access) است. افزونهها میتوانند به کاربران CMS در این کار کمک کنند، اما روش اول آنقدر ساده است که افزودن یک افزونه جدید به سایت غیرضروری خواهد بود.
قبل از ایجاد فایل htaccess، باید بررسی کنید که فایل به صورت خودکار ایجاد نشده باشد، همانطور که معمولاً هنگام نصب وردپرس اتفاق میافتد. در واقع، اگر دو فایل با همان نام در ریشه سرور وجود داشته باشد، ممکن است مشکلاتی ایجاد شود که عملکرد صحیح سایت را مختل کند.
چگونه یک فایل htaccess به صورت خودکار ایجاد کنیم؟
فایل htaccess یا توسط مالک یک وب سایت ایجاد میشود یا به صورت خودکار تولید میگردد. در حالت دوم، این میتواند توسط میزبان وب یا CMS نصب شده، مانند وردپرس، انجام شود. در واقع، هنگام نصب، وردپرس یک فایل htaccess تولید میکند تا قوانین نوشتاری خود را در آن ثبت کند. افزونهها نیز میتوانند فایل دسترسی وب را برای تغییر تنظیمات سرور ایجاد کنند.
برای مثال، افزونه Wordfence، یک افزونه امنیتی، هنگام نصب یک فایل ایجاد میکند تا دسترسی به برخی پوشهها، آدرسهای IP برخی کشورها یا تعداد تلاشهای ورود را محدود کند.
بنابراین، از طریق قوانینی که در فایل پیکربندی سطح دایرکتوری وضع میشوند، میتوان رفتار سرور را تغییر داد، مانند اجبار به استفاده از پروتکل HTTPS که باز هم امنیت سایت را تضمین میکند.
چگونه به درستی از htaccess استفاده کنیم؟

1. بهینهسازی URLها با بازنویسی
بازنویسی URL یکی از اصلیترین قابلیتهای فایل htaccess است که امکان اجبار به استفاده از HTTPS با یک گواهی SSL نصبشده را فراهم میکند. با این روش، سایت برای کاربران کاملاً ایمن خواهد بود و از دید موتورهای جستجو نیز بهینه خواهد شد، زیرا موتورهای جستجو، به ویژه گوگل، نتایج HTTPS را ترجیح میدهند. برخی مرورگرهای وب حتی نتایج HTTP ساده را مسدود کرده و پیامی هشداردهنده نشان میدهند تا کاربر مطلع شود که سایت امن نیست.
2. پیکربندی هدایتها برای حفظ ترافیک
با گذر زمان، برخی صفحات حذف میشوند هرچند هنوز فهرست شدهاند یا از لینکهای سایتهای دیگر بهرهمند هستند. برای اینکه این مزایا از دست نروند و کاربران به صفحه خطای 404 برخورد نکنند، بهتر است هدایت ایجاد شود. برای ایجاد آن از طریق فایل htaccess کافی است خطوط کد زیر اضافه شود:
Redirect 301 /old-page/ https://www.monsite.fr/new-page/
3. پیشنهاد صفحات خطای سفارشی
با این روش، میتوان ترافیک صفحات 404 را به صفحات خطای سفارشی هدایت کرد که میتوانند حاوی یک پیام خاص و همچنین لینک به صفحات یا مقالات دیگر باشند تا کاربر در سایت باقی بماند و نرخ پرش کاهش یابد. برای تغییر صفحهای که هنگام خطا نمایش داده میشود، باید خط کد زیر را در فایل htaccess مشخص کنید:
ErrorDocument 404 /new-404-page.html
4. محافظت از وب سایت در برابر هاتلینکها
هاتلینکها لینکهایی هستند که به صورت خودکار توسط برخی سایتها ایجاد میشوند تا از منابع سایت دیگری استفاده کنند. برای مثال، سایت A لینکی به یک تصویر از سایت B ایجاد میکند تا آن را در سایت خود نمایش دهد. در نتیجه از منابع سایت B استفاده میکند و پهنای باند آن را کاهش میدهد که در نهایت میتواند باعث کندی سایت شود. برای جلوگیری از این کار، میتوان با استفاده از کد زیر، دسترسی به رسانهها را مسدود کرد:
# جلوگیری از هاتلینکها
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://www.mysite.com/.*$ [NC] [OR]
RewriteCond %{HTTP_REFERER} !^https://mysite.com/.*$ [NC] [OR]
RewriteRule .*\.(png|PNG|jpeg|JPEG|mp4|MP4|mp3|MP3|webm|WEBM)$ - [F]
5. مسدود کردن IP با htaccess
این ترفند htaccess مرتبط با امنیت سرور وب یکی از جالبترین قابلیتهای این فایل است. به این ترتیب میتوان دسترسی به سایت را به یک آدرس IP خاص یا حتی به بازهای از IPها محدود کرد. مالک سایت میتواند یک کاربر را که سعی در نفوذ به سایت دارد یا حتی یک رقیب که سایت را زیر نظر دارد، مسدود کند.
کد زیر برای این منظور استفاده میشود، با جایگزینی XXX با مقادیر عددی صحیح:
## مسدود کردن IP کاربر
<Limit GET POST="POST">
Order allow,deny
Deny from XXX.XXX.XXX.XXX
Allow from all
</Limit>
محافظت از پوشهها با رمز عبور
برخی از صاحبان وب سایت از پوشههایی در سرور خود برای میزبانی دادههای حساس یا فایلهایی که دسترسی به آنها باید محدود باشد، استفاده میکنند.
برای مثال: این پوشهها میتوانند شامل مطالب آموزش داخلی یا یک فایل اکسل مشترک توسط تیم فروش باشند. برای محافظت از تمامی محتویات یک پوشه، یک روش این است که آن را با رمز عبور قفل کنید. برای این کار، ابتدا باید کد زیر را در فایل htaccess اضافه کنید:
AuthType Basic
AuthName "دسترسی محدود"
AuthUserFile /var/www/html/protected/.htpasswd
Require valid-user
سپس، در پوشهای که میخواهید محافظت کنید، باید یک فایل htpasswd ایجاد کنید و نامهای کاربری و رمزهای عبور هر شخصی که دسترسی دارد را در آن ثبت کنید.
برای مثال، برای سایت MiraSEO میتوانیم به شکل زیر عمل کنیم:
mira:miraSEO2025!
نکات امنیتی:
- توصیه میشود رمزهای عبور طولانی، با ترکیبی از حروف بزرگ و کوچک، اعداد و نمادها ایجاد شوند.
- این روش باعث میشود که تنها افرادی که رمز عبور را دارند بتوانند به محتویات پوشه دسترسی پیدا کنند.

