آنچه در این مقاله میخوانید
آموزش استفاده از فایل htaccess و مهم ترین دستورات آن
۲۲ شهریور ۱۴۰۴
فایل htaccess یک فایل پیکربندی برای وبسرور آپاچی است که به شما اجازه میدهد دسترسی به سایت یا نحوه عملکرد آن را کنترل کنید. این فایل میتواند تنظیمات پیشفرض سرور آپاچی را تغییر دهد. فایل htaccess میتواند برای کاربردهای متنوعی استفاده شود، از جمله نمایش صفحات خطای سفارشی (مثل صفحه ۴۰۴)، ایجاد ریدایرکتهای URL، پیادهسازی احراز هویت با رمز عبور برای پوشههای خاص روی سرور و بسیاری موارد دیگر.
ساخت یک فایل htaccess بسیار ساده است: میتوانید آن را با هر ویرایشگر متن یا HTML ایجاد کرده و سپس از طریق FTP در سرور آپلود کنید. توجه داشته باشید که این فایل باید در پوشهای قرار گیرد که میخواهید تنظیمات آن پوشه را کنترل کنید. اگر قصد دارید از یک فایل htaccess برای مدیریت کل سایت استفاده کنید، باید آن را در پوشه عمومی (Public) سایت خود آپلود کنید.
در این آموزش از لیارا، شما خواهید آموخت چگونه فایل htaccess را فعال کنید، بسازید و استفاده کنید، همچنین با کاربردهای رایج آن و تأثیر آن بر سرعت و امنیت وبسایت آشنا خواهید شد.

آنچه در ادامه میخوانید:
- پیش نیازها
- فعال کردن فایل .htaccess
- ساخت فایل .htaccess
- کاربردهای رایج فایل .htaccess
- افزایش سرعت و امنیت سایت با استفاده از فایل .htaccess
- نتیجه گیری
- سوالات متداول
پیش نیازها
اگر میخواهید با دنبال کردن مثالهای این آموزش، استفاده از فایل .htaccess را تمرین کنید، به موارد زیر نیاز خواهید داشت:
- یک سرور مجازی Ubuntu 20.04 که با یک کاربر غیر روت دارای دسترسی sudo و فایروال فعال راهاندازی شده باشد. میتوانید این کار را با دنبال کردن نحوه راهاندازی اولیه سرور مجازی با اوبونتو Ubuntu انجام دهید.
- وبسرور Apache روی سرور Ubuntu شما نصب شده باشد. برای یادگیری نحوه نصب، آموزش نصب وبسرور Apache روی Ubuntu 20.04 را دنبال کنید. در این آموزش، از your_domain به عنوان مثال استفاده میکنیم و فایل میزبان مجازی شما /etc/apache2/sites-available/your_domain.conf خواهد بود.
پس از تکمیل این مراحل، میتوانید در گام بعدی شروع به فعالسازی و ایجاد فایل .htaccess کنید و تمرینات عملی را آغاز کنید.
با پلتفرم PHP لیارا، سایت خود را با سرعت بالا و عملکرد بهینه راهاندازی کنید!
✅ نصب و پیکربندی سریع✅ مقیاسپذیری خودکار✅ امنیت پیشرفته✅ مدیریت آسان و بدون پیچیدگی
راه اندازی سریع و خرید هاست PHP لیارا
فعال کردن فایل .htaccess
برای فعال کردن فایل .htaccess اگر به تنظیمات سرور دسترسی دارید، میتوانید پیکربندی Apache را ویرایش کنید تا فایل .htaccess قادر باشد تنظیمات پیشفرض وبسایت را بازنویسی کند.
ابتدا فایل میزبان مجازی خود را که در مسیر apache2/sites-available/your_domain.conf قرار دارد با ویرایشگر متن دلخواه باز کنید. در این مثال، از nano استفاده میکنیم:
sudo nano /etc/apache2/sites-available/your_domain.conf
محتویات این فایل شامل موارد زیر خواهد بود:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
بلوک محتوای Directory که هایلایت زیر را داخل بلوک VirtualHost اضافه کنید:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/your_domain>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
مهمترین خط در این بلوک Directory، عبارت AllowOverride All است که اجازه استفاده از فایلهای .htaccess را میدهد. پس از اضافه کردن این اطلاعات، فایل را ذخیره و ببندید. اگر از nano استفاده میکنید، برای این کار میتوانید ابتدا CTRL + X و سپس Y و در نهایت ENTER را فشار دهید.
سپس، وبسرور Apache را راهاندازی مجدد کنید:
sudo service apache2 restart
اکنون که تنظیمات پیکربندی شما بهروزرسانی شده و امکان استفاده از فایلهای .htaccess فراهم شده است، در مرحله بعد یک فایل .htaccess ایجاد خواهید کرد.
ساخت فایل .htaccess
برای ایجاد یک فایل .htaccess در ترمینال، ابتدا باید به دایرکتوری ریشه وبسایت خود بروید. دایرکتوری ریشه وب همان جایی است که فایل .htaccess باید در آن قرار گیرد تا تنظیمات شما بهدرستی روی وبسایت اعمال شود.
محل قرارگیری صحیح فایل .htaccess اهمیت زیادی دارد، زیرا تنظیمات داخل آن بر تمام محتوای همان دایرکتوری و دایرکتوریهای زیرمجموعه آن تأثیر میگذارد. این یعنی اگر چند وبسایت مختلف را روی یک سرور Apache میزبانی میکنید، فایل .htaccess باید در دایرکتوری ریشه وب مربوط به همان وبسایت قرار گیرد.
اگر مراحل پیشنیاز را دنبال کردهاید، دایرکتوری ریشه وب شما در مسیر زیر خواهد بود:
sudo nano /var/www/your_domain/.htaccess
اکنون که چند روش برای ایجاد فایل .htaccess را یاد گرفتهاید، در مرحله بعد کاربردهای رایج فایل .htaccess را مرور میکنیم.
نحوه ریدایرکت آدرس www به دامنه ریشه با Apache در اوبونتو 24.02 را در مقاله زیر بخوانید.
ریدایرکت آدرس www به دامنه ریشه با Apache
کاربردهای رایج فایل .htaccess
پنج مورد از کاربردهای رایج فایل .htaccess در یک وبسایت عبارتاند از:
Mod_Rewrite
یکی از کاربردهای بسیار مفید فایل .htaccess، قابلیت mod_rewrite است. با استفاده از فایل .htaccess میتوانید مشخص کنید که آدرسها و صفحات وب سایت شما چگونه به کاربران نمایش داده شوند و حتی آنها را تغییر دهید.
احراز هویت (Authentication)
برای راهاندازی احراز هویت و امنیت با فایل .htaccess، میتوانید یک فایل رمز عبور به نام .htpasswd ایجاد کنید تا کاربران را تأیید هویت کند. با این کار، یک درگاه ورود با رمز عبور ایجاد میشود که بازدیدکنندگان سایت را ملزم میکند برای دسترسی به بخشهای مشخصی از وبسایت، رمز عبور وارد کنند. هنگام ایجاد این فایل، حتماً آن را در جایی خارج از دایرکتوری وب ذخیره کنید تا از نظر امنیتی محافظت شود.
برای ایجاد فایل، دستور htpasswd را اجرا کنید و گزینه -c و نام کاربری مورد نظر را وارد کنید تا فایل htpasswd ایجاد شود. پس از اجرای دستور، سیستم از شما میخواهد یک رمز عبور تعیین کنید. میتوانید به تعداد دلخواه، خطوط مختلفی را به فایل htpasswd اضافه کنید، اما مطمئن شوید که هر کاربر یک خط مخصوص به خود داشته باشد.
مثال زیر نشان میدهد چگونه یک ورودی جدید برای کاربر sammy در فایل ایجاد کنید:
sudo htpasswd -c /etc/apache2/.htpasswd sammy
اکنون، میتوانید محتوای این فایل را با اجرای دستور زیر بررسی کنید:
cat /etc/apache2/.htpasswd
با اینکار ،نام کاربری و رمز عبور رمزگذاری شده هر رکوردی که اضافه کردهاید، نمایش داده میشود.
پس از اضافه کردن کاربران موردنظر، فایل .htaccess را باز کنید. اگر مراحل پیشنیاز را دنبال کرده باشید، این فایل در مسیر زیر قرار دارد:
sudo nano /var/www/your_domain/.htaccess
به این نکته توجه داشته باشید که در این مثال، دسترسی به فولدر ریشه وب بر اساس مسیر /var/www/your_domain محدود شده است، اما شما میتوانید این محدودیت را در هر پوشهای که میخواهید دسترسی به آن محدود شود اعمال کنید.
پس از باز کردن فایل، محتوای زیر را اضافه کرده و تغییرات را ذخیره کنید تا قابلیت ورود با رمز عبور فعال شود:
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
صفحات خطا
فایل .htaccess به شما امکان میدهد صفحات خطای سفارشی برای وبسایت خود ایجاد کنید. برخی از رایجترین خطاها عبارتاند از:
- 400 Bad Request
- 401 Authorization Required
- 403 Forbidden Page
- 404 File Not Found
- 500 Internal Error
برای اینکه یک صفحه خطا کاربرپسندتر باشد و اطلاعات بیشتری نسبت به صفحه خطای پیشفرض سرور در اختیار بازدیدکننده قرار دهد، میتوانید از فایل .htaccess برای ایجاد صفحات خطای سفارشی استفاده کنید.
MIME Types
در مواردی که وبسایت شما شامل برخی فایلهای برنامهای باشد که سرور شما بهصورت پیشفرض قادر به ارسال آنها نیست، میتوانید نوعهای MIME (Multipurpose Internet Mail Extensions) را در سرور Apache با استفاده از فایل .htaccess اضافه کنید. مثال زیر نشان میدهد چگونه این کار انجام میشود:
AddType audio/mp4a-latm .m4a
Server Side Includes (SSI)
استفاده از Server Side Includes (SSI) میتواند در وبسایت باعث صرفهجویی در زمان شود. یکی از رایجترین کاربردهای SSI این است که بتوانید تعداد زیادی صفحه را با اطلاعات مشخص بهروزرسانی کنید بدون اینکه هر صفحه را بهصورت جداگانه ویرایش کنید.
برای مثال، اگر بخواهید یک نقل قول در پائین صفحات سایت را تغییر دهید، میتوانید از SSI استفاده کنید.
برای فعالسازی SSI، کد زیر را در فایل .htaccess خود وارد کنید:
AddType text/html .shtml
AddHandler server-parsed .shtml</pre>
این خطوط به فایل .htaccess میگویند که فایلهای .shtml معتبر هستند، و خط دوم بهطور خاص سرور را مجبور میکند که تمام فایلهایی با پسوند .shtml را برای دستورات SSI پردازش کند.
با این حال، اگر تعداد زیادی صفحه .html دارید و نمیخواهید آنها را به .shtml تغییر نام دهید، میتوانید از روش دیگری به نام XBitHack برای پردازش دستورات SSI استفاده کنید.
با افزودن خط زیر به فایل .htaccess، میتوانید Apache را طوری تنظیم کنید که تمام فایلهای .html با مجوز مناسب را برای SSI بررسی کند:
XBitHack on
برای اینکه یک صفحه قابل پردازش با XBitHack شود، از دستور chmod برای تغییر دسترسیها استفاده کنید:
chmod +x pagename.html
اکنون که با چند کاربرد رایج فایل .htaccess آشنا شدید، در مرحله بعد تأثیر فایل .htaccess بر سرعت و امنیت سایت را خواهید آموخت.
افزایش سرعت و امنیت سایت با استفاده از فایل .htaccess
با اینکه فایل .htaccess میتواند برای بهبود عملکرد سایت استفاده شود، دو نکته مهم وجود دارد که باید درباره آنها آگاه باشید: سرعت و امنیت.
از نظر سرعت:
فایل .htaccess ممکن است باعث کند شدن سرور شود، اما برای اکثر سرورها این تغییر معمولاً قابل تشخیص نیست. این مسئله به مکان فایل در دایرکتوریها مربوط میشود، زیرا فایل .htaccess بر صفحات موجود در همان دایرکتوری و تمام دایرکتوریهای زیرمجموعه آن تأثیر میگذارد. به این معنی که هر بار که یک صفحه بارگذاری میشود، سرور دایرکتوری مربوط به آن صفحه و تمامی دایرکتوریهای پیشین را تا بالاترین سطح یا تا رسیدن به یک فایل .htaccess بررسی میکند. این فرآیند تا زمانی که دستور AllowOverride اجازه استفاده از فایلهای .htaccess را بدهد، ادامه خواهد داشت، چه فایلهای .htaccess موجود باشند و چه نباشند.
از نظر امنیت:
فایل .htaccess نسبت به تنظیمات استاندارد Apache بسیار قابل دسترستر است و تغییرات آن بهصورت آنی اعمال میشوند (بدون نیاز به راهاندازی مجدد سرور). این موضوع به کاربران امکان میدهد تغییراتی در فایل .htaccess ایجاد کنند و کنترل زیادی روی سرور داشته باشند. هر دستوری که در فایل .htaccess قرار گیرد، همان تأثیری را دارد که اگر در پیکربندی اصلی Apache قرار میگرفت. همچنین مهم است بدانید که Apache بهطور کلی استفاده از فایل .htaccess را زمانی که کاربر به پیکربندی اصلی Apache دسترسی دارد، توصیه نمیکند.
نتیجه گیری
فایل .htaccess ابزاری قدرتمند و انعطافپذیر است که به شما اجازه میدهد وبسایت خود را به شکل مؤثری مدیریت و سفارشیسازی کنید. با استفاده از این فایل میتوانید صفحات خطای سفارشی ایجاد کنید، دستورات SSI را فعال کنید، امنیت صفحات خاص را با رمز عبور افزایش دهید و نوع فایلهای مورد پشتیبانی سرور را مشخص کنید. با این حال، باید به تأثیر آن بر سرعت بارگذاری سایت و سطح دسترسی کاربران به سرور توجه داشته باشید.
برای افزایش امنیت سایت، توصیه میشود روشهای احراز هویت با رمز عبور در Apache را بیاموزید و با ساختار فایلها و دایرکتوریهای مهم Apache آشنا شوید. در مجموع، یادگیری و استفاده صحیح از .htaccess میتواند کنترل کامل و انعطاف بالایی بر عملکرد و امنیت وبسایت شما فراهم کند.
سوالات متداول
فایل .htaccess چیست؟
یکی از فایلهای مهمی است که با نصب وردپرس بهطورخودکار روی هاست شما نصب خواهد شد. این فایل کارهای مختلفی انجام میدهد که مهمترینشان پیکربندی سرور وبسایت است.
تفاوت .htaccess با فایل پیکربندی اصلی Apache چیست؟
فایل .htaccess برای هر دایرکتوری بهصورت محلی اعمال میشود و تغییرات آن بدون نیاز به ریستارت سرور اعمال میشوند، در حالی که تغییر در فایل پیکربندی اصلی نیاز به دسترسی ریشه و ریستارت سرور دارد.
آیا میتوان فایلهای .html را بدون تغییر پسوند به .shtml برای SSI فعال کرد؟
بله، با استفاده از روش XBitHack میتوان فایلهای .html را برای پردازش دستورات SSI تنظیم کرد، بدون نیاز به تغییر پسوند فایلها.
چه کاربردهای رایجی برای .htaccess وجود دارد؟
- ریدایرکت URL و تغییر مسیر صفحات
- ایجاد صفحات خطای سفارشی (مثل 404 یا 500)
- فعال کردن mod_rewrite برای بهبود ساختار URL
- احراز هویت کاربران با رمز عبور
- افزودن MIME type و فعال کردن SSI