آموزش htaccess
در این مقاله میخوانید
فایل .htaccess برای وب سرور آپاچی بهعنوان راهی بهمنظور پیکربندی جزئیات وبسایت بدون نیاز به دسترسی به فایلهای اصلی سرور و تغییر آنهاست. فایل .htaccess بسیار مهم است؛ زیرا احتمال دارد امنیت وبسایت شما را به خطر بیندازد و روی سرعت وبسایت تأثیرگذار باشد. اگر صاحب وبسایت یا سرور هستید، حتماً نیاز دارید درباره فایل .htaccess بیشتر بدانید. در مطلب حاضر، با نحوه استفاده از فایل .htaccess بیشتر آشنا خواهیم شد؛ پس تا پایان این مقاله از سرویسهای میزبانی و آموزشهای هاست با ما همراه باشید.
خرید انواع هاست ابری برای وب سرور آپاچی
با توجه به توضیحات این مقاله میتوانید، سرویس میزبانی خود را مدیریت کنید و اگر شما قصد خرید سرویسهای هاست پارس پک را دارید، میتوانید از لینک زیر اقدام کنید و یا با کارشناسان فروش ما در ارتباط باشید.
فایل .htaccess چیست؟
همانطورکه گفتیم، از این فایل برای دسترسی به پیکربندی وب سرور بدون نیاز به دسترسی کامل به آن استفاده میشود. نام این فایل با یک نقطه شروع میشود که نشان میدهد در پوشه پنهان است. از فایل .htaccess میتوان برای ایجاد صفحات خطای سفارشی (مانند صفحات خطای ۴۰۴)، ایجاد تغییر مسیر URL، اجرای احراز هویت با رمزعبور برای دسترسی به دایرکتوری خاص و… استفاده کرد.
پیشنیازها
اگر میخواهید آموزش استفاده از فایل .htaccess را بهطورکامل فرابگیرید، بهتر است پیشنیازهای زیر را فراهم کنید:
- سرور اوبونتو 20.04 با کاربر غیرریشه و امتیازهای sudo و فایروال فعال
- وب سرور آپاچی که روی سرور لینوکس اوبونتو نصب شده باشد
- یک دامنه دردسترس (اختیاری). از وبسایت Freenom میتوانید دامنه رایگان تهیه کنید.
برای اینکه بدانید آدرس آی پی چه انواعی دارد و چه خطراتی آن را تهدید می کند؟ مقاله زیر را بخوانید.
پس از اتمام راهاندازی و ایجاد فایل .htaccess، مراحل زیر را دنبال کنید:
فعالکردن فایل .htaccess
اگر به تنظیمات وب سرور دسترسی دارید، پیکربندی آپاچی را میتوانید تغییر دهید تا به فایل .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>
مهمترین خط این قطعه کد، AllowOverride All است که امکان استفاده از فایل .htaccess را فراهم میکند. پس از افزودن این قطعه کد، فایل را ذخیره کنید و سپس خارج شوید. اگر از nano استفاده میکنید، این کار را با فشردن کلیدهای CTRL + X و سپس Y میتوانید انجام دهید.
در مرحله بعد، با دستور زیر آپاچی را ریاستارت کنید:
sudo service apache2 restart
اکنون که تنظیمات فایل .htaccess برای استفاده ویرایش شده است، بهراحتی میتوانید فایل .htaccess را ایجاد کنید.
مقاله زیر مرور مفصلی است بر وبسرور آپاچی و مقایسه آن با دیگر وبسرورها، آن را از دست ندهید.
ایجاد فایل .htaccess
برای ایجاد فایل .htaccess، باید در ترمینال به دایرکتوری root وب خود بروید. این مکان جایی است که فایل .htaccess شما در آن قرار میگیرد و اجرا میشود. محل قرارگیری فایل .htaccess نیز مهم است؛ زیرا تمام تنظیمات موجود در آن ممکن است بر دایرکتوری اصلی و تمامی دایرکتوریهای زیرمجموعه اثر بگذارد. اگر چندین وبسایت مختلف در یک سرور آپاچی سرویسدهی میکنید، باید برای هر وبسایت دایرکتوری جداگانه در نظر بگیرید.
اگر پیشنیازها را بهدرستی فراهم کرده باشید، دایرکتوری root وب شما شبیه /var/www/your_domain/.htaccess.htaccess خواهد بود. برای ایجاد فایل جدید در این مکان، دستور زیر را اجرا کنید:
sudo nano /var/www/your_domain/.htaccess
اکنون که توانستید فایل .htaccess جدیدی ایجاد کنید، درادامه با برخی از کاربردهای رایج .htaccess آشنا خواهیم شد.
کاربردهای رایج .htaccess
فایل .htaccess پنج کاربرد رایج برای صفحات وبسایت شما دارد. این کاربردها بدینشرحاند:
Mod_Rewrite .۱
Mod_Rewrite یکی از امکانات پرکاربرد فایل .htaccess است. شما میتوانید با استفاده از فایل .htaccess، نوع نمایش URLها و صفحات وب برای کاربران را ویرایش کنید.
۲. احراز هویت (Authentication)
برای تنظیم سیستم امنیتی احراز هویت با .htaccess، میتوانید فایل رمزعبور .htpasswd ایجاد کنید تا برای احراز هویت کاربران استفاده شود. با ایجاد این فایل، پورتال رمزعبوری ایجاد میکنید که کاربران را وادار میکند برای دسترسی به بخش خاصی از وبسایت، رمزعبور وارد کنند. برای امنیت بیشتر، حتماً دقت کنید این فایل را دردسترس کاربران قرار ندهید.
برای ایجاد فایل htpasswd، دستور زیر را اجرا کنید. در این دستور، از آپشن -c و نام کاربری برای ایجاد فایل خود استفاده کنید. پس از اجرای این دستور، اعلان ورود رمزعبور به شما نمایش داده میشود که باید برای آن رمزعبور در نظر بگیرید. شما میتوانید تعداد بسیار زیادی خط کد در فایل htpasswd وارد کنید؛ اما مطمئن شوید که هر کاربر خط مربوط به خود را دارد. در مثال زیر، نحوه ایجاد ورودی جدید در این فایل برای کاربر sammy نمایش داده شده است:
sudo htpasswd -c /etc/apache2/.htpasswd sammy
با اجرای فایل cat /etc/apache2/.htpasswd، میتوانید محتویات آن را بررسی و تمامی رکوردهای اضافهشده را بههمراه نام کاربری و رمزعبور مشاهده کنید. هنگامیکه کاربران مدنظرتان را اضافه کردید، فایل .htaccess را باز کنید. اگر پیشنیازها را بهطورکامل فراهم کرده باشید، فایل شما در مکان زیر خواهد بود:
sudo nano /var/www/your_domain/.htaccess
دقت کنید که در این مثال کل دایرکتوریهای root یعنی /var/www/your_domain را محدود میکنیم؛ اما میتوانید آن فایل را در هر دایرکتوری موردنیاز قرار دهید و محدود کنید. پس از بازشدن فایل .htaccess، کدهای زیر را به آن اضافه و تغییرات را ذخیره کنید تا رمزعبور برایتان فعال شود:
AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user
۳. صفحات خطای سفارشی (Custom Error Pages)
با استفاده از فایل .htaccess، بهراحتی میتوانید صفحات خطای سفارشی خود را ایجاد کنید و پیشفرض سرور را تغییر دهید. برخی از خطاهای رایج عبارتاند از:
- 400 Bad Request
- 401 Authorization Required
- 403 Forbidden Page
- 404 File not Found
- 500 Internal Error
MIME Types .۴
در مواقعی که وب سرور برخی از فایلهای مدنظر شما را ارائه نمیدهد، از این قابلیت میتوانید استفاده کنید. فایلهای .htaccess به کاربران اجازه میدهند تا مشخص کنند که چه نوع MIME باید برای فایلهای خاص در فهرست html آنها گزارش شود. وقتی شخصی آن فایل را از صفحه اصلی انتخاب میکند، این نوع MIME ازطریق مرورگر فراخوانی میشود. با استفاده از دستور زیر، میتوانید Multipurpose Internet Mail Extensions یا MIME را در فایل .htaccess پیکربندی کنید:
AddType audio/mp4a-latm .m4a
مطمئن شوید که پسوند برنامه و فایل را با نوع MIME که میخواهید پشتیبانی کنید، جایگزین کنید. در مثال بالا، نوع فایل صوتی MIME را مشخص کردهایم.
SSI .۵
Server side includes یا SSI یکی از عملیاتهای عالی برای افزایش سرعت وبسایت است. ازجمله کاربردهای رایج SSI، بهروزرسانی تعداد زیادی از صفحات با برخی دادههای خاص بدون نیاز به بهروزرسانی کامل هر صفحه است. برای مثال، اگر میخواهید نقلقولی ساده را در پایین صفحات خود تغییر دهید، از این قابلیت میتوانید استفاده کنید.
برای فعالکردن SSI، کد زیر را در فایل .htaccess خود وارد کنید:
AddType text/html .shtml AddHandler server-parsed .shtml</pre>
این خطوط در فایل .htaccess مشخص میکنند که فایلهای .shtml معتبر هستند. خط دوم باعث میشود که سرور تمام فایلهایی که فرمتشان .shtml است، در هر دستور SSI تجزیه کند. بههرحال، اگر صفحات .html زیادی دارید و به تغییر نام آنها به افزونه .shtml تمایلی ندارید، از تاکتیک XBitHack برای تجزیه دستورهای SSI میتوانید استفاده کنید. برای پیادهسازی تاکتیک XBitHack، میتوانید خط زیر را به .htaccess اضافه کنید تا آپاچی تمام فایلهای .html را با مجوزهای SSI بررسی کند:
XBitHack on
همچنین، اگر میخواهید XBitHack را تنها برای یک صفحه پیادهسازی کنید، از دستور زیر برای تغییر مجوزها استفاده کنید:
chmod +x pagename.html
فایل .htaccess سرعت و امنیت را کاهش میدهد؟
حتی اگر یک فایل .htaccess برای وبسایت استفاده شود، قطعاً بر دو عامل مهم، یعنی سرعت و امنیت، تأثیرگذار است.
برای دریافت آموزش کامل نصب وب سرور Apache مقاله زیر را بخوانید.
۱. تاثیر .htaccess بر سرعت
فایل .htaccess ممکن است سرعت سرور شما را کاهش دهد؛ اما برای بسیاری از سرورهای قوی تغییری بسیار کوچک بهشمار میآید. دلیل تأثیر آن بر سرعت وبسایت میتواند موقعیت فایل .htaccess باشد؛ زیرا این فایل روی همه صفحات و دایرکتوریهای زیرمجموعه تأثیر میگذارد؛ یعنی هربار که صفحهای اجرا میشود، سرور دایرکتوری آن صفحه و تمامی دایرکتوریهای قبل از آن را بررسی میکند تا به بالاترین دایرکتوری یا فایل .htaccess برسد. این عملیات تا زمانی ادامه مییابد که دستورالعمل AllowOverride اجازه استفاده از فایل .htaccess را بدهد.
۲. تاثیر .htaccess بر امنیت
دسترسی به فایل .htaccess بسیار بیشتر از پیکربندیهای استاندارد آپاچی است و تغییرات بدون نیاز به راهاندازی مجدد سرور در موقع تعیینشده انجام خواهند شد. این قابلیت به کاربران اجازه میدهد تا در فایل .htaccess تغییراتی ایجاد کنند و کنترل زیادی روی سرور داشته باشند. هر دستوری که در فایل .htaccess قرار میگیرد، هیچ تفاوتی با قرارگیری آن در پیکربندی آپاچی ندارد و یکسان اجرا میشوند. همچنین، دقت کنید آپاچی بهطورکلی استفاده از فایل .htaccess را برای کاربران منع میکند.
جمعبندی
فایل .htaccess دسترسیهای زیادی برای صاحبان وبسایتها فراهم میکند. با استفاده از آن میتوانید امکانات متفاوتی مانند SSI و Custom Error Pages و MIME را فعال کنید. ازآنجاکه این فایل مستقیماً در آپاچی فعال میشود، روی امنیت سرور تأثیرگذار است و بسته به پیکربندی شما، سرعت وبسایت را کاهش یا افزایش میدهد. در این مقاله، نحوه ایجاد و فعالسازی و استفاده از فایل .htaccess را بهطورکامل آموزش دادیم و هرآنچه برای اجرای آن نیاز داشتید، توضیح دادیم.
برای دریافت آموزش کامل نصب و کانفیگ وب سرور آپاچی در لینوکس اوبونتو، دبیان و CentOs، مقاله زیر را بخوانید.
سؤالات متداول
۱. فایل .htaccess برای چه هدفی استفاده میشود؟
فایل .htaccess راهی برای ایجاد تغییرات پیکربندی در وبسایت براساس هر دایرکتوری ارائه میدهد. این فایل در دایرکتوری خاصی ایجاد میشود که حاوی یک یا چند دستورالعمل پیکربندی است که برای آن دایرکتوری و زیرشاخههایش اِعمال میشود.
۲. فایل .htaccess کجاست؟
فایل .htaccess در دایرکتوری اصلی وبسایت قرار دارد. بسته به ارائهدهنده هاست شما، دایرکتوری ریشه ممکن است پوشهای با برچسب public_html ،www ،htdocs یا httpdocs باشد.
۳. آیا به فایل .htaccess نیاز داریم؟
.htaccess برای وبسایتهای عمومی موردنیاز نیست. این فایل به شما امکان میدهد تا در نحوه رفتار وبسایتتان تغییراتی ایجاد کنید. بهعنوان مثال، افرادی را از دسترسی به وبسایت خود منع کنید یا لینک قدیمی و مُرده را به صفحه جدید هدایت کنید.
۴. .htaccess در آپاچی چیست؟
فایلهای .htaccess به کاربران اجازه میدهند تا دایرکتوریهای وب سروری را که کنترل میکنند، بدون تغییر در فایل پیکربندی اصلی پیکربندی کنند.
۵. چگونه فایل .htaccess را ویرایش کنیم؟
- وارد حساب هاست خود شوید و سپس به سیپنل یا دایرکتادمین بروید و File Manager را انتخاب کنید.
- از File Manager به پوشه public_html بروید. فایل .htaccess در این پوشه قرار دارد. وقتی آن را پیدا کردید، روی آن کلیکراست و Edit را انتخاب کنید.
۶. چگونه فایل .htaccess را غیرفعال کنیم؟
- به هاست خود متصل شوید.
- پس از اتصال، به دایرکتوری root وبسایت خود مانند publc_html بروید.
- فایل .htaccess را پیدا کنید و آن را تغییر نام دهید.