فایل .htaccess یکی از قدرتمندترین و در عین حال ناشناخته ترین بخش های مدیریت یک وب سایت است. این فایل به شما اجازه می دهد تا بدون نیاز به ویرایش فایل های اصلی پیکربندی سرور، تغییرات مهمی در سایت خود ایجاد کنید؛ از ریدایرکت کردن آدرس ها گرفته تا شخصی سازی صفحات خطا و ارتقای امنیت.
این فایل در سرورهایی که از نرم افزار وب سرور متن باز آپاچی (Apache) استفاده می کنند (که اکثر هاست های لینوکسی را شامل می شود) کاربرد دارد. (اگر سرور شما Nginx است، این فایل برای شما کار نخواهد کرد).
در این مقاله جامع، بررسی می کنیم که فایل htaccess چیست، در کجا قرار دارد و چگونه می توانید از آن برای افزایش سئو، سرعت و امنیت سایت خود استفاده کنید.
فایل htaccess معمولاً در پوشه اصلی (Root Directory) سایت شما قرار دارد. فرقی نمی کند از یک سیستم مدیریت محتوا مانند وردپرس استفاده می کنید یا سایت خود را از صفر کدنویسی کرده اید.
یکی از راه های دسترسی به این پوشه، استفاده از رابط کاربری فایل منیجر (File Manager) در کنترل پنل هاست لینوکس (مانند cPanel یا DirectAdmin) است.

دقت کنید که محل قرارگیری این فایل، دامنه تاثیرگذاری آن را مشخص می کند. اگر فایل htaccess در پوشه اصلی (مثلاً public_html ) باشد، قوانین آن روی تمام سایت اعمال می شود. اما اگر آن را داخل پوشه خاصی (مثلاً پوشه images ) قرار دهید، قوانین فقط روی همان پوشه و زیرپوشه های آن اعمال خواهد شد.
نکته مهم: فایل .htaccess به صورت پیش فرض مخفی (Hidden) است (به دلیل وجود نقطه در ابتدای نام آن). اگر آن را نمی بینید، باید از بخش تنظیمات فایل منیجر، گزینه نمایش فایل های مخفی ( Show Hidden Files ) را فعال کنید.
اگر از وردپرس استفاده می کنید، این فایل در زمان نصب به صورت خودکار ساخته شده است. قبل از هرگونه تغییر، حتماً از سایت خود فول بکاپ (Backup) بگیرید. یک اشتباه کوچک در این فایل می تواند باعث از دسترس خارج شدن سایت و خطای 500 شود.
برای ویرایش این فایل ۳ راه اصلی وجود دارد:
وارد کنترل پنل هاست خود شوید، به File Manager بروید و پوشه روت (معمولاً public_html ) را باز کنید. روی فایل .htaccess راست کلیک کرده و گزینه Edit را بزنید.

پس از باز شدن ویرایشگر متن، تغییرات خود را اعمال کرده و فایل را ذخیره کنید.
یک اکانت FTP در هاست خود بسازید و با نرم افزاری مثل Cyberduck به سرور متصل شوید.

حتماً در تنظیمات نرم افزار FTP خود، گزینه Show hidden files را فعال کنید تا فایل برایتان نمایش داده شود. سپس می توانید آن را در سیستم خود ویرایش کرده و مجدداً آپلود کنید.
اگر وردپرسی هستید، افزونه هایی مثل Yoast کار را بسیار ساده کرده اند. کافیست در پیشخوان وردپرس به مسیر سئو -> ابزارها -> ویرایشگر فایل بروید. در آنجا می توانید مستقیماً کدهای htaccess را ویرایش و ذخیره کنید.
شما می توانید با استفاده از این فایل، ساختار آدرس دهی سایت خود را برای موتورهای جستجو بهینه کنید.
برای انتقال اعتبار سئو از یک صفحه حذف شده به یک صفحه جدید، باید از ریدایرکت ۳۰۱ استفاده کنید. برای این کار کد زیر را در فایل قرار دهید:
Redirect 301 /old-page/ https://www.yourdomain.com/new-page/
(به جای آدرس های بالا، آدرس صفحات خود را قرار دهید).
برای جلوگیری از مشکل محتوای تکراری (Duplicate Content) در سئو، سایت شما باید فقط با یک نسخه باز شود. برای ریدایرکت نسخه www به نسخه بدون www از کد زیر استفاده کنید:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.yourdomain.com [NC]
RewriteRule (.*) https://yourdomain.com/$1 [L,R=301]
</IfModule>
وقتی کاربری آدرس اشتباهی را در سایت شما وارد می کند، با خطای 404 مواجه می شود. داشتن یک صفحه 404 اختصاصی با طراحی مناسب، کاربر را در سایت نگه می دارد. برای فراخوانی این صفحه:
ErrorDocument 404 /404-page.html

کانفیگ صحیح این فایل یکی از خطوط دفاعی اصلی سرورهای لینوکسی است. برای آشنایی کامل با تمام روش های محافظت از سایت، حتماً سری به دیگر مقالات وبلاگ راست چین کلود بزنید. با این حال، چند دستور مهم امنیتی در فایل htaccess عبارتند از:
داشتن گواهینامه SSL برای امنیت و سئو ضروری است. برای اینکه تمام کاربران به صورت خودکار به نسخه ایمن https منتقل شوند:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
می توانید روی بخش های حساس سایت (مثل پنل مدیریت یا پوشه های خاص در هاست) رمز عبور بگذارید. برای این کار به یک فایل .htpasswd (که خارج از روت می سازید و رمزهای نگاری شده را در آن قرار می دهید) نیاز دارید. کد زیر را در فایل htaccess پوشه مدنظر قرار دهید:
# Password protection
AuthType Basic
AuthName “Restricted Area”
AuthUserFile /path/to/.htpasswd
Require valid-user

سرعت سایت یکی از فاکتورهای مهم رتبه بندی گوگل است. با دو دستور ساده در این فایل می توانید سرعت هاست لینوکسی خود را متحول کنید.
فشرده سازی Gzip حجم فایل های HTML، CSS و جاوا اسکریپت را پیش از ارسال به مرورگر کاربر به شدت کاهش می دهد:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
با این کار به مرورگر کاربر دستور می دهید که فایل های ثابت (مثل عکس ها و لوگوها) را برای مدت مشخصی در سیستم خود نگه دارد تا در بازدیدهای بعدی نیازی به دانلود مجدد آن ها نباشد. این کار فشار روی سرور را کم کرده و سرعت لود را به شدت بالا می برد (کافیست از ماژول mod_expires استفاده کنید).
فایل htaccess ابزار قدرتمندی است، اما استفاده نادرست از آن می تواند مشکلاتی ایجاد کند:
درک نحوه کار با فایل .htaccess به شما کنترل کاملی روی عملکرد، سئو و امنیت هاست لینوکسی تان می دهد. همیشه قبل از ویرایش آن بکاپ بگیرید و از منابع و کدهای استاندارد استفاده کنید.