مقدمهای بر موضوع
در این آموزش قصد داریم درخصوص فایل htaccess. صحبت کنیم که حتما شما دوستان عزیز با این واژه آشنایی دارید.
فایل htaccess. یک فایل پیکربندی متن ساده است که دسترسی به دایرکتوری خاصی رو در سرور شما کنترل می کند. می توانید با این فایل بسیاری از تنظیمات پیکربندی وبسایت خودتون رو انجام بدید که در ادامه به توضیح بیشتری در این باره خواهیم پرداخت.
فایل htaccess. چیست؟
یک فایل پیکربندی متن ساده در سطح دایرکتوری برای سرورهای وب است که به زبان ساده، دسترسی به دایرکتوری خاصی را در سرور شما کنترل می کند.
استفاده از فایل htaccess. محبوب شد زیرا میتوان از آن برای نادیده گرفتن تنظیمات سرور سطح جهانی مرتبط با دسترسی به فهرست ها استفاده کرد. با این حال، اخیرا htaccess. میتواند بسیاری از تنظیمات پیکربندی دیگر را لغو کند.
چندین وب سرور مدرن مانند Apache از htaccess یا فایل های مرتبط پشتیبانی می کنند. اگرچه برخی از سرورهای محبوب دیگر مانند Nginx پشتیبانی مستقیم از فایلهای htaccess. ندارند، اما راه هایی وجود دارد که میتوانیم قوانین htaccess. را در Nginx اعمال کنیم.
” قوانین htaccess. برای یک دایرکتوری و همه زیر شاخه های آن اعمال می شود، مگر اینکه فایل های htaccess. بیشتری در زیر شاخه ها وجود داشته باشد. “
” مجوزهای htaccess. باید به گونه ای باشد که اجازه دسترسی برای خواندن به همه داده شود ولی اجاره تغییر و نوشتن تنها به ادمین اختصاص داده شود. “
مزایا و معایب فایل htaccess.
فایلهای htaccess. در هر درخواست خوانده میشوند. بنابراین، بر خلاف تنظیمات همگانی که نیاز به راهاندازی مجدد سرور دارند، هر تغییری در این فایلها باعث اثرگذاری فوری میشود. همچنین به هر کاربر اجازه میدهند تا مجوزهای خود را برای سروری با کاربران زیاد تنظیم کنند.
گرچه یک اشکال بزرگ وجود دارد، از آنجایی که هر درخواست نیازمند خواندن تمام فایلهای htaccess. از سرور وب است، در صورت وجود بار قابل توجه میتواند منجر به مشکلات عملکرد شود. همچنین، غیرمتمرکز کردن تنظیمات برای کاربران مختلف میتواند منجر به مشکلات امنیتی شود، به خصوص اگر فایلهای htaccess. به درستی پیکربندی نشده باشند.
اگر میخواهید در فایل htaccess. تغییراتی ایجاد کنید، مطمئن شوید که یک نسخه پشتیبان تهیه میکنید زیرا یک خطای مختصر نحوی میتواند سرور را از کار بیندازد. همچنین پیشنهاد میشود در هنگام اعمال تغییرات در فایلهای htaccess. ، نظرات مناسب را وارد کنید.
نقش و اهمیت فایل htaccess. در تنظیمات وبسایت چیست؟
فایل htaccess. برای تنظیمات وبسایت نقش کلیدی دارد؛ این فایل به شما امکان میدهد تنظیمات سرور وب، مدیریت دسترسی، و بهینهسازی عملکرد سایت را بهسادگی و بدون نیاز به تغییر تنظیمات سرور اصلی انجام دهید.
-
جلوگیری از Hotlinking
Hotlinking فرآیندی است که در آن یک وب سایت مستقیماً به یک بخش در سایت دیگر پیوند میشود. این مطلب میتواند یک تصویر، فایل صوتی یا ویدیویی باشد. اگرچه محتوای سایت شما ممکن است بهطور مستقیم بر روی سایت دیگری نمایش داده شود، اما این کار می تواند به طور قابل توجهی پهنای باند شما را مصرف کند و مشکلاتی را ایجاد نماید!
برای جلوگیری از هات لینک با استفاده از فایل htaccess.، باید تنظیمات خاصی را در این فایل اعمال کنید، بدون ذکر این تنظیمات توضیحات درباره هات لینک ناقص خواهند بود. تنها کاری که باید انجام دهید این است که موارد مشخصی را به فایل htaccess. خود اضافه کنید.
” توجه داشته باشید که باید yourdomain.com را با نام دامنه خود جایگزین کنید و مسیر صحیح فایل های مورد نظر را در تنظیمات وارد کنید. “
❓ اجازه ندادن به Hotlink چگونه است؟
apache Copy code RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC] RewriteRule \.(jpg|jpeg|png|gif)$ – [F,NC] |
❓ جلوگیری از Hotlink برای فایلهای خاص به چه صورت است؟
Apache Copy code RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC] RewriteRule \.(pdf|mp4|avi)$ – [F,NC] |
❓ ارسال پیغام خطای سفارشی برای Hotlink به چه روشی است؟
apache Copy code ErrorDocument 403 /path/to/your-custom-error-pag |
بیایید با هم بررسی کنیم این کدها چه معنایی دارد…
- ابتدا `RewriteEngine` را فعال میکنیم تا بتوانیم درخواستها را به URL دیگری هدایت کنیم. `RewriteCond` دستوری است که شامل دو آرگومان `TestString` و `CondPattern` است.
- `${HTTP_REFERER}` متغیری است که دامنهای را که درخواست از آن آمده، ذخیره میکند.
- `(www\.)?` این اطمینان را میدهد که هم نسخه `www.yoursite.com` و هم `yoursite.com` مجاز هستند.
- `NC` به سیستم میگوید که حساسیت به حروف بزرگ و کوچک را نادیده بگیرد.
- `F` خطای ممنوعه 403 را نمایش میدهد.
- `L` به سیستم میگوید که پس از این قاعده، دیگر قواعد بازنویسی را نادیده بگیرد و متوقف کند.
- شما همچنین می توانید یک تصویر جایگزین در hotlinking اضافه کنید.
-
مسدود کردن / اجازه دادن به کاربران از یک آدرس IP خاص
کاربرد اصلی فایل htaccess. اجازه دادن یا مسدود کردن دسترسی به یک فهرست خاص است. شما می توانید آن را طوری پیکربندی کنید که به طور انتخابی درخواست های یک کاربر خاص را مجاز یا غیرمجاز کند.
اگر متوجه شدید که یک هرزنامه شما را اذیت کرده است یا شخصی سعی در حذف محتوای شما داشته است، می توانید آدرس IP او را مسدود کنید.
شما همچنین می توانید توسط کد زیر چنین کاربرانی را به یک URL خاص هدایت کنید.
RewriteCond %{REMOTE_ADDR} 192\.168\.121\. RewriteRule .* https://google.com [R,L] |
برای اهداف امنیتی، ممکن است گاهی لازم باشد که به طور انتخابی فقط آدرس های IP خاصی را به یک مکان خاص اجازه دهید. به عنوان مثال، ممکن است بخواهید فقط IP شما به قسمت مدیریت سایت شما دسترسی داشته باشد. در چنین مواردی، درخواست های همه IP ها را مسدود میکنید و به صورت انتخابی IP های خود را به لیست سفید اضافه میکنید.
دستور مسدود کردن و اجازه دادن
-
مسدود کردن همه
apache Copy code Order Deny,Allow Deny from all |
لیست سفید آدرسهای IP
-
اجازه دادن به آدرس IP 1
apache Copy code Allow from xx.xxx.xx.xx |
-
اجازه دادن به آدرس IP 2
apache Copy code Allow from xx.xxx.xx.xx |
این تنظیمات به این صورت عمل میکنند که ابتدا دسترسی از همه IPها مسدود میشود و سپس فقط به آدرسهای IP مشخص شده اجازه دسترسی داده میشود.
-
پنهان کردن فهرست دایرکتوری
پنهان کردن فهرست دایرکتوریها در وبسایت به این معناست که کاربران نتوانند محتوای دایرکتوریها را مشاهده کنند اگر فایلی برای نمایش فهرست موجود نباشد. برای انجام این کار در فایل htaccess. میتوانید از دستور Options -Indexes استفاده کنید.
برای جلوگیری از نمایش فهرست دایرکتوریها، به فایل htaccess. در ریشه یا دایرکتوری مورد نظر وبسایت خود، دستور زیر را اضافه کنید:
apache Copy code Options -Indexes |
توضیحات:
Options -Indexes: این دستور به وبسرور میگوید که فهرست دایرکتوریها را نمایش ندهد. اگر کاربر به دایرکتوریای بدون فایلهای index مانند index.html یا index.php دسترسی پیدا کند، به جای مشاهده فهرست فایلها، با خطای 403 (دسترسی ممنوع) مواجه خواهد شد.
-
نمایش صفحات خطای سفارشی
اگرچه این کار با اکثر CMS ها یا فریم ورک های محبوب امکان پذیر است، اما ساده ترین راه برای نمایش صفحات خطای سفارشی 404 یا 500 از طریق تغییرات ساده در فایل های htaccess. می باشد.
-
اسلش اجباری دنباله دار
موتورهای جستجو www.yoursite.com/something و www.yoursite.com/something/ را به عنوان دو URL متفاوت در نظر می گیرند، حتی اگر ممکن است دقیقاً به یک مورد اشاره کنند. وبلاگ Google Webmasters توصیه می کند که بهترین راه برای حل این مشکل این است که نسخه بدون اسلش به نسخه اسلش تغییر مسیر دهد. بنابراین، موتورهای جستجو متوجه خواهند شد که این همان محتوایی است که آنها به آن اشاره می کنند!
<IfModule mod_rewrite.c> RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] </IfModule> |
بهبود عملکرد htaccess.
همانطور که در بالا توضیح داده شد، فایل های htaccess. می توانند عملکرد را در صورت افزایش قابل ملاحظه بار کاهش دهند. با این حال، این کاهش عملکرد را می توان با فعال کردن گزینه AllowOverride فقط در فهرست های خاص محدود کرد.
به طور پیش فرض، برای کل سایت فعال است و سرور هر دایرکتوری را در هر درخواست بررسی می کند. اساساً میتوانید AllowOverride را روی None تنظیم کنید و آن را برای دایرکتوری های خاصی مطابق شکل زیر مجاز کنید.
<Directory /some/directory/where/you/want/to/enable/AllowOverride> AllowOverride Options </Directory> |
خلاصه مطلب
امیدواریم آموزش کار با htaccess. را شروع کنید و توانسته باشیم نکات مهمی درخصوص راه اندازی و نگهداری آن گفته باشیم و به عنوان یک لانچ پد برای شما باشد تا کارهای بسیار مهمتری را با آن انجام دهید. همیشه مراقب فایل htaccess. به دلیل اهمیت و قدرت آن باشید.