پیکربندی، اقدامی ضروری برای بهینهسازی عملکرد سایت و سرور است. با اینکه روی سرورها فایلهای مخصوص پیکربندی وجود دارند، در برخی مواقع، دسترسی به این فایلها فراهم نیست!
اینجاست که فایل htaccess. وارد میشود و مشکل را حل میکند. در این مقاله میخواهیم ببینیم htaccess چیست و چگونه میتوان از آن برای پیکربندی سرور استفاده کرد.
کاربرد اصلی این فایل برای وبسرور Apache و Litespeed است، اما تمرکز این مقاله روی آپاچی خواهد بود. وبسروری که بنا به آمار موجود در سایت Stackscale، کمی بیش از ۳۱ درصد سهام بازار را در اختیار دارد.
خلاصه که به همهچیز میپردازیم، از کاربردهای htaccess گرفته تا بررسی مواقعی که باید سراغ این فایل رفت.
مقدمه کافی است، بیایید وارد عمق ماجرا شویم!
فایل htaccess چیست؟
این عبارت مخفف Hypertext Access است. فایل htaccess. یک فایل پیکربندی قدرتمند است که وظیفۀ رسیدگی به پیکربندیهای کلان در سرورها را برعهده دارد؛ اما نه هر سروری!
این فایل مختص سرورهای مجهز به وبسرورهای مبتنی بر Apache و Litespeed است؛ اما Litespeed بخش جداگانهای برای پیکربندی دارد که در اختیار شرکت ارائهدهنده قرار دارد. در کل، همانطور که گفتیم، تمرکز این مقاله روی Apache خواهد بود.
برای آنهایی که شاید ندانند، باید بگوییم وبسرور نرمافزاری است که روی سرور نصب میشود و بهعنوان واسطهای بین کلاینت و وب عمل میکند. اگر میخواهید با این مفهوم بیشتر آشنا شوید، مقالۀ وب سرور چیست را بخوانید.
آپاچی هم یک برند شناختهشدۀ وبسرور است! اتفاقا برای آن هم مقالهای جداگانه با نام وب سرور آپاچی چیست داخل وبلاگ داریم که میتوانید برای کسب اطلاعات بیشتر سراغش بروید.
پیشنهاد خواندنی: وب سرور Lighttpd چیست
برگردیم سراغ این مقاله و پرسش اصلی، یعنی htaccess چیست؟
خب فهمیدیم که با یک فایل پیکربندی طرف هستیم که در وبسرورهای مبتنی بر آپاچی دیده میشود. با کمک این فایل، میتوانید جنبههای مختلف سایت مثل چگونگی رفتار و دسترسی به آن را کنترل و مدیریت کنید.
به زبان سادهتر، با کمک htaccess. میتوانید بدون ویرایش فایلهای پیکربندی اصلی داخل سرور، هر تغییری که میخواهید در پیکربندی اعمال کنید. برای مثال، اگر یک هاست اشتراکی داشته باشید، به احتمال خیلی زیاد، اصلاً به فایلهای پیکربندی دسترسی نخواهید داشت که بخواهید آنها را ویرایش کنید؛ پس htaccess. در نقش یک قهرمان با لباس سوپرمن وارد میشود.
خیلی جالب است که بدانید کیفیت این فایل میتواند روی سئو سایت اثر مستقیم بگذارد. اگر htaccess. بهخوبی نوشته شده باشد، سایت بهتر ایندکس و کراول میشود!
بله، گفتیم اگر بهخوبی نوشته شده باشد! بهخاطر اینکه این فایل متشکل از تکه کدها و خطوط متنی است؛ در واقع، htaccess. با همین تکه کدها به سرور میفهماند که چطور باید رفتار کند. هرگونه تغییری هم که قرار باشد در آن اعمال شود، از طریق ویرایش، افزودن یا حذف کدهای درون آن انجام خواهد شد.
نکتۀ قابلتوجه دیگر در رابطه htaccess. این است که فرایند پیکربندی را فقط در دایرکتوریای که درونش قرار دارد انجام میدهد! اگر در روت هاست شما باشد، آنجا را پیکربندی میکند (که خب روی کل دایرکتوریها اثر میگذارد)؛ اگر در دایرکتوریهای دیگر مثل images/ یا downloads/ باشد، فرایند پیکربندی را در همان دایرکتوریها پیش میبرد.
خلاصه که با یک فایل پیکربندی طرف هستیم که تنظیمات اولیۀ مربوط به سرور را انجام میدهد.
در بخش بعدی، راجعبه کاربردهای htaccess صحبت خواهیم کرد.
کاربردهای htaccess
تا اینجا فهمیدیم htaccess چیست. حالا وقت آن است که با کاربردهای گوناگون آن آشنا شویم.
بازنویسی و ریدایرکت URL
با فایل htaccess. میتوانید URLهای طولانی و پیچیده را به موارد سادهتر تبدیل کنید. مثلاً به URL همین صفحه نگاه کنید؛ خواهید دید که بهاصطلاح تمیز است.
این کار هم باعث جلب رضایت موتورهای جستوجو میشود، هم تجربۀ کاربری خوبی رقم میزند.
علاوهبر بازنویسی، htaccess. در ریدایرکت کردن URLها هم کاربرد دارد؛ یعنی با استفاده از این فایل، میتوانید بهراحتی کاربران را از یک URL قدیمی به URL جدید هدایت کنید.
ساخت صفحات سفارشی برای خطاهای HTTP
کاربرد دیگر فایل htaccess. توانایی ایجاد صفحات خطای سفارشی است! مثلاً میتوانید صفحۀ خطای ۴۰۴ را با طرح دلخواه و مختص سایت خودتان بسازید.
وادار کردن سایت به استفاده از HTTPS بهجای HTTP
با این فایل میتوان سایت را طوری پیکربندی کرد که همواره از گواهی SSL بهره ببرد و بهجای HTTP از ورژن ایمن، یعنی HTTPS استفاده کند.
کنترل دسترسی به بخشهای مختلف سرور
htaccess. این امکان را فراهم میکند تا با گذاشتن پسورد روی دایرکتوریهای مدنظرتان در سرور، دسترسی به آنها را کنترل کنید.
بهطور کلی، این فایل در کنترل دسترسی کاربرد زیادی دارد. هم از طریق کلمۀ عبور، هم با اقدامات دیگری مثل محدود کردن مجموعهای از IPهای مشخص یا ایجاد لیست مجازی حاوی IPهای مشخص که فقط آنها بتوانند وارد دایرکتوری شوند.
کش کردن و فشردهسازی فایلها
میدانیم که کش کردن محتویات سایت در بسیاری از موارد ضروری است. فایل htaccess. این کار را برایتان انجام میدهد.
بهعلاوه، htaccess. میتواند فایلهایی که میخواهید را فشرده کند تا سرعت بالا آمدن سایت افزایش پیدا کند و بهطور کلی عملکرد سایت بهتر شود.
تأمین امنیت سرور
این فایل توانا در تأمین امنیت سرور هم کاربرد دارد. htaccess. میتواند درخواستهای مشکوک را بلاک کند و مانع hotlinking شود. اقداماتی که در نهایت منجر به افزایش امنیت سایت خواهند شد.
✅ تعریف مختصر hotlinking: وقتی از یک لینک مستقیم برای نمایش عکس یا ویدئو روی سایت استفاده شود، بدون اینکه آن تصویر روی هاست سایت آپلود شده باشد، با hotlinking مواجهیم! این کار میتواند باعث بروز مشکلاتی از قبیل سرقت پهنای باند شود.
این هم از کاربردهای htaccess! اما اصلاً این فایل چطور کار میکند که این قابلیتها را دارد؟
htaccess. چطور کار میکند؟
همانطور که گفتیم، این فایل در یک دایرکتوری داخل هاست قرار میگیرد. همچنین گفتیم که پیکربندی تنظیمشده در این فایل، فقط روی دایرکتوریای که داخل آن قرار دارد اعمال میشود.
بعد از قرارگیری htaccess. داخل یک دایرکتوری، بهمحض دریافت درخواستی مرتبط با دایرکتوری موردبحث، وبسرور فایل را اجرا میکند. مثلاً اگر htaccess. داخل دایرکتوری images/ باشد، هر درخواستی مرتبط با عکسها، باعث میشود آپاچی فایل را اجرا و دستورات آن را پیادهسازی کند.
مهم است بدانید که این فایل را معمولاً داخل دایرکتوری root هاست قرار میدهند؛ همان public_html/. با توجه به این که پیکربندی مشخصشده داخل فایل در دایرکتوری محل قرارگیریاش اعمال میشود، وقتی htaccess. در root باشد، کل سایت از آن تأثیر خواهند گرفت!
نکته: کم پیش میآید که این فایل داخل سابدایرکتوری قرار بگیرد؛ اما در برخی مواقع این اتفاق رخ میدهد که در نتیجۀ آن فواید مشخصی هم حاصل خواهد شد.
توجه داشته باشید که فایل htaccess. مثل هر فایل پیکربندی دیگری در آپاچی، از بالا به پایین خوانده میشود؛ یعنی ابتدا دستوراتی که در بالا نوشته شدهاند اجرا میشوند و پس از آن نوبت دستوراتی میشود که پایینتر نوشته شدهاند.
برای اینکه خیالتان راحت باشد htaccess. دقیقاً همان کاری را میکند که میخواهید، باید از ترتیب درست کدها اطمینان داشته باشید.
پس هربار که درخواستی از منبعی مشخص به وبسرور فرستاده میشود، این سرویس ابتدا بررسی میکند که آیا فایل htaccess. داخل سابدایرکتوری مقصد یا دایرکتوریهای مادر، مثل root وجود دارد یا نه! اگر آپاچی htaccess. را پیدا کند، محتویات آن را میخواند تا پیکربندی مشخصشده در آن را اعمال کند.
ممکن است در داخل فایل، ریدایرکت URL وجود داشته باشد؛ شاید هم محدودیت دسترسی برای یک دایرکتوری مشخص شده باشد! در هر صورت، آپاچی آنها را اعمال میکند.
پس از آن، آپاچی پاسخ را با توجه به پیکربندی و دستورات مشخصشده در htaccess. برمیگرداند.
اجازه دهید در اینجا یک هشدار هم به شما بدهیم. همانطور که در بخش بررسی htaccess. چیست گفتیم، با یک فایل پیکربندی سرور طرف هستیم؛ یعنی وجود یک غلط املایی کوچک هم میتواند در عملکرد کل سرور اختلال ایجاد کند و باعث پایین آمدن سایتتان شود.
اگر اطلاعات کافی ندارید، توصیه میکنیم یک متخصص استخدام کنید یا حتماً با یک توسعهدهندۀ وب مشورت کنید. اگر هم مرغتان یک پا دارد و اصرار دارید خودتان کار را پیش ببرید، حتماً قبل از اعمال هرگونه تغییر، از نسخۀ اصلی htaccess. بکاپ بگیرید؛ به این ترتیب، اگر مشکلی هم پیش بیاید میتوانید بهسادگی سراغ بکاپ بروید و همهچیز را مثل قبل کنید.
یادتان است که گفتیم htaccess. کمک میکند بدون تغییر فایلهای پیکربندی، تغییرات لازم را در پیکربندی سرور به وجود بیاوریم؟ خب چرا یکراست سراغ همان فایلها نرویم و دست به دامان htaccess شویم؟
در بخش بعدی این موضوع را بررسی میکنیم.
چه زمانی از .htaccess استفاده کنیم؟
حقیقت این است که پیکربندی از طریق فایلهای پیکربندی اصلی سرور خیلی راحتتر و کارآمدتر انجام میشود! پس بهتر است تا جای ممکن سراغ htaccess. نروید؛ چون باعث کاهش سرعت سایت و ایجاد اختلال در عملکرد آن، مخصوصاً هنگام مواجهه با ترافیک سنگین میشود.
اما خب ممکن است به فایلهای پیکربندی اصلی (که معمولاً نام آنها httpd.conf است) دسترسی نداشته باشید! مثلاً در عموم هاستهای اشتراکی، کاربران به این فایلها دسترسی ندارند، در نتیجه، ناچار هستند سراغ htaccess. بروند.
به همین خاطر، در بیشتر مواقع، هر اکانت هاست اشتراکی میتواند بسته به نیازش، یک یا چند htaccess را در دایرکتوریهایش قرار دهد.
اگر از VPS یا سرور اختصاصی استفاده میکنید، به احتمال زیاد به فایلهای اصلی پیکربندی یا همان httpd.conf دسترسی دارید؛ پس بهتر است تغییرات مدنظرتان را روی همان فایلها اعمال کنید و بیخیال htaccess. شوید.
پیشنهاد خواندنی: سرور مجازی (VPS) چیست و چه کاربردی دارد؟
حتی میتوانید برای هر دایرکتوری پیکربندی متفاوتی لحاظ کنید، بدون اینکه نیاز به ساخت دهها فایل جداگانه در بخشهای مختلف سرور باشد؛ اتفاقی که به کاهش سرعت سایت و ایجاد تجربۀ بد برای کاربر منجر میشود.
در بخش قبلی که راجعبه طرز کار htaccess. صحبت کردیم، گفتیم وبسرور پس از دریافت هر درخواست، بررسی میکند که آیا فایل htaccess. در کار است یا نه. اگر چنین فایلی در دایرکتوری منبع پیدا شود، وبسرور آن را میخواند و اجرا میکند. خب این کار زمان میبرد، مخصوصاً اگر چندین فایل htaccess. در کار باشد و وبسرور بخواهد دستورات هرکدام را جداگانه پیادهسازی کند.
پس باید بگوییم تا جای ممکن از این فایل استفاده نکنید! اگر ضرورت وجود داشت، مثل زمانی که کاربر هاست اشتراکی هستید، حتماً ۳ نکتۀ زیر را رعایت کنید:
- از کمترین فایل htaccess. ممکن استفاده کنید (۱ فایل در حالت ایدئال)؛
- فایل htaccess. را در دایرکتوری root قرار دهید؛
- تا جای ممکن فایل htaccess. را کوتاه و ساده نگه دارید.
اجازه دهید یک بار دیگر هم تأکید کنیم تا ملکۀ ذهنتان شود! تا جای ممکن از فایلهای htaccess. استفاده نکنید! شک نکنید که اعمال تغییرات در پیکربندی از طریق فایلهای اصلی سرور بسیار بهتر انجام میشود.
اما خب ما با فرض اینکه شما مجبور به استفاده هستید، مقاله را ادامه میدهیم. میخواهیم چگونگی ویرایش این نوع فایلها را در بخش بعدی بررسی کنیم.
نحوۀ ویرایش فایل htaccess.
گفتیم که این فایل حاوی تکه کدها و خطوط متنی است؛ یعنی دستورات پیکربندی از طریق همین کدها و متون مشخص میشود.
اگر قصد ویرایش این فایل را دارید، باید نسخۀ کنونی آن را یا از طریق کلاینت FTP دانلود کرده یا از طریق کنترلپنل هاستتان (مثلاً cPanel) ویرایش کنید.
برای آشنایی با انواع مختلف کلاینتهای FTP، مقالۀ بهترین نرمافزارهای FTP برای کاربران مک و ویندوز را بخوانید.
حالا فایل را در اختیار دارید و میتوانید تغییرات مدنظرتان را در آن اعمال کنید.
توجه داشته باشید که ممکن است فایل htaccess. از قبل حاوی برخی تنظیمات مهم باشد؛ اگر اینطور است، بدون پاک کردن آنها، دستورات جدید را به فایل اضافه کنید. اهمیت ترتیب داشتن دستورات را که بالاتر به آن اشاره کردیم فراموش نکنید!
فقط در صورتی محتویات فایل را پاک کنید که مطمئن هستید هیچ مشکلی ایجاد نمیشود.
باز هم توصیه میکنیم اگر دانش کافی ندارید، این کار را خودتان انجام ندهید یا حداقل قبل از اعمال هرگونه تغییر، از فایل اصلی بکاپ بگیرید.
خب موافقید کمی دقیقتر شویم؟ بیایید ببینیم ریدایرکت کردن با htaccess. چطور انجام میشود!
نحوه ریدایرکت کردن آدرسها با htaccess.
فهمیدیم که یکی از کاربردهای htaccess. ریدایرکت کردن URLها است. وقتی دامنه یا حتی ساختار سایت را تغییر میدهید، باید با کمک گرفتن از قابلیت ریدایرکت، مانع سردرگمی کاربر شوید تا سایت را ترک نکند!
برای انجام این کار، کافی است مطابق مراحل زیر پیش بروید:
- از طریق کنترلپنل هاست (معمولاً یا سیپنل است، یا دایرکت ادمین یا پلسک) وارد هاستتان شوید؛
- فایل htaccess. را پیدا و ویرایش کنید. اگر هم اصلاً چنین فایلی در سرور وجود ندارد، میتوانید فایلی با همین عنوان در مسیر روت هاست ایجاد کنید.
- فایل را با ویرایشگر متن داخل کنترلپنل ویرایش کنید؛
- خط حاوی متن زیر را به فایل اضافه کنید:
enable basic rewriting #
RewriteEngine on
- کدها و متون مربوط به پیکربندی جدید را به فایل htaccess. منتقل و فایل را ذخیره (Save) کنید؛
- برای اطمینان از درستی کار، وارد سایتتان شوید و URL صفحۀ مدنظر را وارد کنید تا ببینید ریدایرکت انجام میشود یا نه!
با انجام این ۶ مرحله، میتوانید از htaccess برای ریدایرکت کردن آدرسها کمک بگیرید.
حالا برویم سراغ کاربرد بعدیای که راجعبه آن صحبت کردیم؛ یعنی ساخت صفحات خطا بهصورت سفارشی.
نحوه ایجاد صفحه خطای ۴۰۴ با htaccess.
همانطور که گفتیم این فایل برای ساخت صفحات سفارشی همۀ خطاهای HTTP کاربرد دارد؛ اما خب ما تصمیم گرفتیم از کد معروف و شناختهشدۀ ۴۰۴ برای پیش بردن آموزش استفاده کنیم.
توجه داشته باشید که ابتدا باید صفحات خطا یا Error را در سایت بسازید. میتوانید این کار را با کدنویسی انجام دهید یا سراغ سایتسازها بروید؛ انتخاب با شما است!
پس از ساخت صفحات، آنها را ذخیره کنید تا امکان آپلودشان روی سرور فراهم شود. حالا وقت شخصیسازی این صفحات با کمک htaccess. است. مراحل زیر را بهترتیب انجام دهید:
- وارد File Manager کنترلپنل هاست شوید؛
- فایل htaccess. مربوط به دامنۀ مدنظرتان برای نمایش صفحه خطای ۴۰۴ را باز کنید. منظور آن فایل htaccess. است که مسئول صفحۀ خطا است!
- از طریق ویرایشگر متن کنترلپنل، تکه متن زیر را به htaccess. اضافه کنید؛
serve custom error pages #
ErrorDocument 400 /errors/400.html
- بهجایerrors/400.html/، مسیر صفحه خطایی که آپلود کردهاید را وارد کنید. در مثال بالا، ۴۰۰ را داریم که مختص خطای ۴۰۰ است؛
- هر تعداد خطی که میخواهید اضافه کنید؛ خطوط مختلف که مختص خطاهای گوناگون با اعداد مختلف هستند؛
ErrorDocument 500
ErrorDocument 404
...ETC
- بعد از افزودن آدرس هر کد به htaccess.، فایل را ذخیره کنید و ببندید.
- در مرحلۀ آخر، سایت را بهمنظور اطمینان از درستی کار تست کنید.
صفحات خطای سفارشی، ظاهری حرفهای به سایتتان میدهند که باعث خلق تجربۀ کاربری جذاب میشوند. تصویر زیر یک نمونه از این صفحات سفارشی را که مختص خطای ۴۰۴ وبسایت Pixar است نشان میدهد:
حالا که تا اینجا آمدیم، بیایید چگونگی محافظت از دایرکتوریها با کلمۀ عبور را هم آموزش دهیم.
محافظت از دایرکتوریها بهوسیلۀ پسورد با .htaccess
صحبت از تأمین امنیت است، پس اجازه دهید شما را به خواندن مقالهای مرتبط با نام آموزش افزایش امنیت وردپرس با htaccess دعوت کنیم. در آن مقاله مفصل توضیح دادهایم که چطور میتوان از این فایل برای بالا بردن امنیت استفاده کرد.
برگردیم سراغ بحث خودمان و ببینیم چطور با htaccess. برای دایرکتوریها پسورد بگذاریم.
اگر به هر دلیلی میخواهید استفاده از یک یا چند دایرکتوری سرور را با گذاشتن کلمۀ عبور، به کاربران خاص محدود کنید، مطابق مراحل زیر پیش بروید:
- برای شروع، وارد File Manager کنترلپنل شوید؛
- فایل htpasswd. باید در یک دایرکتوری بالاتر از دایرکتوری htaccess. و جدا از آن قرار بگیرد. اینطوری هم ایمنی فراهم میشود و هم بهطور مستقیم از طریق مرورگر قابلدسترسی نخواهد بود؛
- باید Syntax مناسب را برای دو فایل htaccess. و htpasswd. بسازید. سایتهای بسیاری وجود دارند که این کار را برایتان انجام میدهند و میتوانید از آنها کمک بگیرید؛
- بعد از ساخت فایل، باید Syntax را در فایل قرار دهید. اگر از قبل یک فایل htaccess. روی سایت دارید، میتوانید آن را ویرایش و Syntax را ضمیمهاش کنید؛
- دسترسیهای تعیینشده در فایل را بررسی کنید تا مطمئن شوید کاربران مجاز دسترسی لازم را دارند.
روش سادهتری هم وجود دارد، آن هم کمک گرفتن از کنترلپنل هاست به منظور گذاشتن کلمۀ عبور روی دایرکتوریهای مختلف است. این قابلیت که در سیپنل و دیگر کنترلپنلهای معروف وجود دارد، از همان htaccess. و htpasswd. برای رمزگذاری دایرکتوریها استفاده میکند. در صورت استفاده از این قابلیت، قوانین زیر توسط کنترلپنل به فایل htaccess. افزوده میشود:
AuthType Basic
AuthName "Example"
AuthUserFile "/home/$USER/.htpasswds/Path/To/ProtectedDirectory/passwd"
Require valid-user
این هم از این؛ وقت جمعبندی است!
فقط در صورت لزوم سراغ فایل htaccess. بروید!
در این مقاله بررسی کردیم که htaccess چیست و فهمیدیم علیرغم تمام فوایدش، بهتر است تا جای ممکن از آن استفاده نکنیم؛ چراکه ممکن است باعث کاهش سرعت سایت شود و به تجربۀ کاربری بازدیدکنندگان لطمه بزند.
اگر امکان پیکربندی از طریق فایلهای اصلی سرور فراهم است، کلاً بیخیال htaccess. شوید و بیجهت بار اضافی روی دوش وبسرور نگذارید؛ اما اگر به هر دلیلی قرار بود از این فایل پیکربندی استفاده کنید، ۳ نکتۀ زیر را فراموش نکنید:
- استفاده از تنها یک فایل htaccess. (یا کمترین میزان ممکن!)؛
- قرار دادن فایل htaccess. در دایرکتوری root سرور؛
- کوتاه و ساده نگه داشتن تنظیمات در فایل؛
علاوهبر اینها، با کاربردهای htaccess. آشنا شدیم و چگونگی دستیابی به ۳ مورد از آنها را آموزش دادیم.
امیدواریم از خواندن این مقاله نهایت استفاده را برده باشید؛ اگر همچنان سؤالی در این زمینه دارید، در قسمت کامنتها منتظرتان هستیم.
سؤالات متداول
۱. محتویات فایل htaccess چیست؟
این فایلها از تکه کدها و خطوط متنی تشکیل شدهاند. در واقع، پیکربندی و دستورات، از طریق این کدها به وبسرور فهمانده میشود.
۲. فایل htaccess کجاست؟
این فایل میتواند در هر دایرکتوری یا فولدری از سرور قرار بگیرد؛ اما حالت معمول قرارگیری آن در root سرور است.
۳. دانلود فایل htaccess چگونه انجام میشود؟
هم میتوانید از طریق FTP یا SFTP به سرور وصل شوید و این فایل را دانلود کنید و هم میتوانید از طریق کنترلپنل هاست کارتان را پیش ببرید.
منابع: ithemes | Daniel Morell
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید