آنچه در این مقاله میخوانید
آموزش استفاده از فایل 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