مجله خبری هاست ایران » طراحی و توسعه » راهنمای استفاده از htaccess برای طراحان و توسعه‌‌دهندگان وب
توسعه وب طراحی و توسعه

راهنمای استفاده از htaccess برای طراحان و توسعه‌‌دهندگان وب

استفاده از htaccess

راه های مختلفی برای مدیریت و تنظیم کردن هر چه بیشتر سایت مطابق سلیقه خودتان وجود دارد. با استفاده از htaccess می‌توانید تنظیمات مختلفی در حوزه امنیت، محدود کردن دسترسی و غیره بدست آورید.

در میان ابزارهای موجود برای تغییر و سفارشی‌سازی سرور وب خود، فایل کانفیگ .htaccess یکی از برترین‌ها است. می‌توانید انواع مدارک، موتورهای تجزیه‌کننده و تغییر مسیرهای (URL Redirect) را همراه با بسیاری ویژگی‌های کلیدی دیگر به‎سرعت انجام دهید. ممکن است وبمسترهای تازه‌کار نخواهند فایل htaccess خود را مدیریت کنند.  به آنها توصیه می کنیم، فراگیری دستورات و نحوه ویرایش این فایل را فرا بگیرند.

هر کسی که می‌خواهد وب‌سایت خودش را روی یک سرور Apache راه‌اندازی کند، قطعا می‌خواهد مدیریت فایل .htaccess خود را بداند. این فایل امکانات سفارشی کردن بسیاری در اختیارتان قرار می‌دهد و روی همه زبان‌های نوشتاری وب از PHP گرفته تا Ruby می‌تواند کار کند.

در انتهای این مقاله نیز چند اپلیکیشن وب دیگر معرفی می‌کنیم که تازه‌کارها می‌توانند فایل .htaccess خود را بسازند.

چرا باید از یک فایل .htaccess استفاده کنیم؟

سوال مهمی که باید کار را با پاسخ به آن شروع کنیم این است که: «فایل htaccess چیست؟» . یک فایل تنظیمات بسیار خاص است که توسط سرور وب Apache استفاده می‌شود. یک فایل .htaccess می‌تواند به وب سرور بگوید که انواع مختلف اطلاعات را چطور نمایش دهد و چگونه به سربرگ‌های متعدد درخواست‌های HTTP رسیدگی کند.

در واقع وسیله‌ای برای تمرکززدایی است تا تنظیمات سرور وب را سازماندهی کند. ممکن است یک سرور فیزیکی بیش از ۵۰ وب سایت مختلف را که هر کدام فایل .htaccess خود را دارند در خود جای داده باشد. این قدرت فراوانی به وبمسترها می‌دهد که از راهی دیگر نمی‌توانستند بدست آورند. اما چرا لازم است از این فایل استفاده کنیم؟

اصلی‌ترین دلیل، امنیت است. می‌توانید چند دایرکتوری خاص را از دسترسی خارج کنید یا برایشان رمز عبور بگذارید. این کار برای پروژه‌های خصوصی یا برای استفاده در سیستم‌های مدیریت محتوای جدید که می‌خواهید امنیت بیشتری داشته باشید بسیار عالی است. اما دستورهای رایج مانند تغییر مسیر پیام‌های خطای ۴۰۴ به یک صفحه وب خاص نیز وجود دارند. این امر تنها به اندازه یک خط کدنویسی فضا لازم دارد اما می‌تواند اثر بالایی روی بازخورد بازدیدکنندگان نسبت به صفحات گم شده داشته باشد.

حقیقتش را بخواهید چیز زیادی نمی‌توان برای متقاعد کردن افراد گفت تا باور کنند که شناخت فایل .htaccess ارزشش را دارد. وقتی عملکرد آن را ببینید، آن وقت به ارزش‌هایی که همراه با این فایل کانفیگ کوچک است پی می‌برید. امیدواریم ادامه متن بتواند چند موضوع قابل توجه به شما ارائه کند و وبمسترها را از اهمیت مدیریت تنظیمات .htaccess آگاه کند.

اجازه دادن یا مسدود کردن دسترسی

شناخت بازدیدکننده‌های مخرب احتمالی و مسدود کردن دسترسی آنها به وب‌سایت‌تان، از طریق این فایل امکانپذیر است. شاید این کار کمی سخت باشد، اما اگر می‌دانید که فرد یا گروهی از افراد مدتی است سایت شما را هدف قرار داده‌اند، چند راه پیش رو دارید. می توانید از یک ارجاع دامین (domain referral) استفاده کنید تا بازدیدکنندگان را توسط آدرس IP شان مسدود کنید:

کدهای بالا نمونه‌ای از یک راهنمای برای استفاده از این روش هستند. دقت کنید که دومین آدرس IP، چهارمین عدد را ندارد. این کد بلاک کردن، اولین IP (یعنی ۲۵۵.۰.۰.۰) و همه IPهای داخل محدود ۱۲۳.۴۵.۶.۰-۲۵۵ را شامل می‌شود و به بقیه اجازه دسترسی می‌دهد. شاید وبمسترها از آن به اندازه دیگر تکنیک‌ها استفاده نکند اما دانستن آن مفید است.

جلوگیری از فهرست کردن دایرکتوری

گاهی رخ می‌دهد که یک دایرکتوری باز دارید که روی تنظیمات اجازه بازدید بصورت پیشفرض تنظیم شده است. این یعنی کاربران می‌توانند تمام فایل‌های فهرست شده در ساختار دایرکتوری داخلی مانند فولدر تصاویرتان را ببینند. بعضی از وبمسترها نمی‌خواهند داریکتوری‌ها فهرست شوند، خوشبختانه کد مناسب این کار را براحتی می‌توانید در یاد نگه دارید:

این راه‌حل را بارها در Stack Overflow مختلف دیده‌ایم و احتمالا یکی از ساده‌ترین قوانین در یادگیری .htaccess است.

ایجاد چند فایل .htaccess داخل هر یک از این دایرکتوری‌ها امکان پذیر است، پس شاید یکی از آنها دارای رمز باشد و بقیه نداشته باشند. همچنین می‌توانید کد Options-indexes را هم نگه دارید تا بازدیدکنندگان نتوانند محتویات فولدر website /images شما را ببینند.

رمزگذاری

رمگذاری برای دایرکتوری‌هایتان یکی از روش‌های رایج برای تامین امنیت نواحی مدیریتی و فولدرهای مهم وب‌سایت شما است. گاهی شاید فقط بخواهید به گروهی کوچکی از افراد اجازه دسترسی دهید. گاهی استفاده از رمز برای جلوگیری از هکرها و دسترسی آنها به پنل مدیریتی سایت است. در هر حال، رمزگذاری یکی از راه‌های بسیار قدرتمند برای حل بسیاری از مشکلات است.

می‌توانید از راهنماهای موجود در مورد رمزگذاری استفاده کنید تا کدهای مهم را بشناسید. لاید یک فایل رمز ایجاد کنید که اطلاعات نام کاربری/رمز عبور را در خود ذخیره می‌کند. Apache به همین روش اطلاعات ورودی کاربر را بررسی می‌کند تا تشخیص دهد اجازه دسترسی به فرد داده شود یا خیر. همچنین دقت کنید که چگونه باید یک نمونه از نام کاربری و رمز عبور خود ایجاد کنید.

برای کار ابزار htpassword generator را پیشنهاد می‌کنیم تا در وقت‌تان هم صرفه‌جویی شود. سینتکس خروجی بی نقص است و نیازی ندارید رمز عبور را خودتان تغییر دهید. یک راه بسیار خوب دیگر این است که تمام یک فهرست دایرکتوری را رمزگذاری کنید. می‌توانید نمونه ای از آن را مشاهده کنید.

امنیت در ورد پرس

برای استفاده بهینه از روش رمزگذاری، بیایید یک مثال واقعی را بررسی کنیم. این کد که کمی پیچیده‌تر است، از هر کس که به فایل wp-login.php ورد پرس دسترسی یابد می‌خواهد که هویت کاربری‌اش را احراز کند. منبع اصلی این روش را می‌توانید در Ask Apache به همراه دیگر کدهای حفاظتی ورد پرس مشاهده کنید.

اگر قصد دارید از این اصول .htaccess پیروی کنید، باید برای ناحیه مدیریتی هم یک رمز بگذارید. عموما افرادی که سعی دارند به زور وارد سیستم شما شوند، بیش از هر چیز به فایل wp-login.php  حمله می‌کنند. بنابراین همین چند کدی که بالاتر مثال زدیم می‌تواند امنیت کاملی برای وب سایت ورد پرس شما فراهم کند.

قوانین بازنویسی HTTP URL

بازنویسی URLها یکی از رایج ترین کاربردهای فایل های .htaccess است. به کمک امکانات موجود پیشفرض در ورد پرس می‌توانید یک فایل .htaccess را از همان پنل مدیریت بسازید. این به شما اجازه می‌دهد URLهای قشنگی بسازید که ساختار .php?p=1 هم ندارند.

بد نیست نگاهی به نمونه‌هایی از این بازنویسی‌ها بیاندازید تا روش تبدیل خط زیرین به خط تیره را بیاموزید، چون شامل بخش زیادی از عناصر مهم هستند.

تقریبا همیشه می‌توان RewriteEngine و RewriteBase را مطابق این دستورها تنظیم کرد. اما باید RewriteEngine برای همه چیز روشن باشد تا کار کند. راهنماهای آنلاین متعددی در خصوص نحوه فعال کردن mod_rewrite وجود دارد.

دقت کنید که سینتکس از یک الگوی RewriteRules در بالا پیروی می‌کند. از این اصول برای هماهنگی با مواردی که بعنوان یک درخواست HTTP ارسال شده اند استفاده می‌شود. به آنها توسط یک RewriteRule پاسخ داده می‌شود که در این مثال، همه چیز را به یک دامین دیگر d.com تغییر مسیر می‌دهد. کروشه‌های انتهایی مانند [R=301,L] را پرچم‌های بازنویسی (rewrite flags) می‌نامند که اهمیت زیادی دارند اما در واقع یک امکان اضافه هستند.

سینتکس mod_rewrite کمی گیچ‌کننده است اما نترسید. قطعه‌ها در مثال‌های دیگر بسیار ساده‌تر بنظر می‌رسند.

پیشنهاد می‌کنیم حتما از این اپلیکیشن وب mod_rewrite استفاده کنید.

به کمک آن می‌توانید نمونه کدهایی با استفاده از URLهای حقیقی بسازید. این ابزار شگفت‌انگیزی است چون می‌توانید در سینتکس چندین مورد را بررسی کنید و ببینید چه عملکردی در قوانین بازنویسی دارند. این نمونه‌ای ساده از این نوع است:

سعی نکنید همه این مطالب را با هم فرا بگیرید. احتمالا ۳ الی ۴ ماه زمان خواهد برد تا واقعا با نحوه بازنویسی URL ها با [۰-۹a-zA-Z]+ و الگوهای مشابه آشنا شوید. تمرین را ادامه دهید و به شما قول می‌دهیم بعد از تمرینات کافی به راحتی موضوعات بدیهی آنها را در ذهن داشته باشید.

قطعه‌های کد برای وبمسترها

ما عاشق قطعه هایی با کاربرد آسان هستیم و می‌خواهیم مجموعه‌ای کوچک از کدهای مربوط به .htaccess را برای وبمسترها ارائه کنیم. هر یک از این ایده ها می‌تواند در کنار دیگر کدهای بلوک کردن برای فایل .htaccess شما مناسب باشد. اکثر این قطعه‌ها برای حل سریع مشکلات یا خطاهای موجود در محیط سرور وب کاربرد دارند. تصویر کنید که یک تنظیم عالی Apache برای وبمسترهای جدیدی فراهم شده است که به تازگی در فضای آنلاین شروع به کار کرده‌اند.

تنظیم فهرست دایرکتوری

دستور مربوط به فهرست دایرکتوری 0DirectoryIndex) معمولا در یک خط استفاده می‌شود. می‌توانید به Apache بگویید با کدام فایل‌ها همانند فایل‌های «اصلی» برخورد کند. بطور پیشفرض فایل‌هایی مانند index.html، index.php، index.asp و دیگر فایل‌های فهرستی را انتخاب می‌کند. اما با استفاده از این قطعه کد که در زیر می‌بینید، می‌توانید این مدرک اصلی را به هر چه می‌خواهید تبدیل کنید:

ترتیب مدارک باید از مهم‌ترین مدرک شروع شود و به سمت مدارک با اهمیت کمتر ادامه پیدا کند. در نتیجه اگر یک فایل  HTML یا CGI نداشتیم، در بازگشت به index.php بر می‌گردد. حتی می‌توانید نام این فایل‌ها را همانند home.php یا someotherfile.php که همگی سینتکس‌های شناخته شده‌ای هستند انتخاب کنید.

قرار دادن دامین با www یا بدون www

اگر بین www.domain.co  و یا فقط domain.com انتخاب نکرده باشید، گوگل می‌تواند با هر دو نسخه از دامین وب‌سایت شما کار کند. اما تجربه نشان داده است که بهتر است یکی از آنها را انتخاب کرده و بکمک .htaccess بعنوان تنها گزینه موجود مشخص کنید. به این ترتیب گوگل URLهای مختلفی را که برخی به دامین فرعی www اشاره دارند اما برخی ندارند فهرست نخواهد کرد.

این قطعه‌های کد از یک مجموعه CSS-Tricks گرفته شده است و راه‌حلی بسیار کاربردی ارائه می‌کند. بهتر است دامین خود را به هر شکلی که برای سایت‌تان بهتر است تغییر دهید. در غیر این صورت مشکلاتی بوجود خواهد آمد که بلافاصله متوجه‌شان می‌شوید. اما باز هم اکیدا توصیه می‌کنیم تنها یکی از این دو گزینه را انتخاب کنید و آن را در اولویت اول بعد از راه‌اندازی یک وب‌سایت می‌دانیم.

دانلود اجباری فایل‌های چند رسانه‌ای

برخی دیگر از قطعه کدهای مهم، به برخی انواع فایل های چندرسانه‌ای بجای اینکه فقط در مرورگر نمایش داده شوند،اجازه دانلود اجباری را می‌دهند. اولین مثالی که به ذهن می‌رسد فایل‌های PDF و فایل‌های صوتی MP3 است که با قابلیت دانلود نمایش داده می‌شوند، اما چطور مطمئن شویم قابل دانلود هستند؟ برای این موضوع توانستیم قطعه کد زیر را بدست آوریم:

می‌توانید در صورت دلخواه انواع فایل‌های دیگری را هم به انتهای این کد اضافه کنید. همه فایل‌های چند رسانه‌ای که از نوع octet-stream MIME استفاده می‌کنند، قبل دانلود خواهند بود. اجبار این کار از طریق فایل .htaccess راهی مستقیم برای اطمینان از این است که مردم قادر به مشاهده این فایل‌ها روی مرورگر نباشند.

مدارک خطای سفارشی

آخرین نکته‌ای که می‌خواهیم اضافه کنیم، یک قالب کامل از مدارک خطای سفارشی است. معمولا این کدهای عددی تنها در سمت سرور دیده می‌شوند. اما مدارک خطای فراونی هستند که بهتر است با آنها آشنا باشید. چند نمونه از آنها را می‌توان خطاهای ۴۰۳/۴۰۴ و تغییر مسیر ۳۰۱ نام برد.

این قالب کدهای خطا از شماره ۱۰۰ شروع شده و تا خطای ۵۰۰ ادامه پیدا می کند. لطفا توجه داشته باشید که لزوما به همه آنها احتیاجی ندارید. فقط رایج‌ترین آنها را باید بشناسید و احتمالا بد نیست در صورت نیاز چند قطعه که برایتان مبهم است را هم بررسی کنید.

اگر نتوانستید کد خاصی را بشناسید کافی است آن را در Wikipedia جستجو کنید.

ابزارهای آنلاین برای استفاده از htaccess

منبع hongkiat
ابزار بهینه سازی وب هاست ایران

افزودن دیدگاه

کلیک برای ثبت دیدگاه