در این مطلب از سری مطالب آموزش میزبانی وب در آذرآنلاین با آموزش کامل کار با Htaccess که یکی از مهمترین نکاتی است که نیاز هر فرد دارای وب است ، در خدمت شما خواهیم بود.
همانطور که میدانید فایل Htaccess یک فایل مخفی در دایرکتوری اصلی وب (Public_html) است که برخی از تنظیمات کلی وب سرور و نوع رفتار وب سرور با سایت شما را مشخص میکند. Htaccess یک فایل متنی بدون پسوند است که قابلیت آن را دارد تا در هر دایرکتوری از وب قرار گیرد و رفتار هر دایرکتوری به جداگانه با وب سرور تنظیم نماید.
در این مطلب ما قصد داریم به توضیح کلی دستورات و مواردی که در Htaccess قابل استفاده هستند پرداخته تا با آنها آشنا شده و در پایان بتوانید این فایل را به صورت کاملاً حرفهای و سفارشی برای وب سایت خود تهیه و تنظیم نمایید.
دقت داشته باشید ممکن است در هاستهای اشتراکی توسط سرویس دهنده برخی تنظیمات در فایلهای پیکربندی PHP انجام شده باشد و یا عدم وجود برخی از ماژولها در سرور ، کدها به درستی کار نکنند و سایت را از دسترس خارج سازند. بنابراین بهترین راه حل این است که کدها را به صورت تک به تک در فایل Htaccess قرار داده و پس از اطمینان از عملکرد سایت و کد درج شده ، سایر کدها را به دلخواه وارد نمایید.
در ادامه با آموزش کامل کار با Htaccess همراه ما باشید.
آموزش کامل کار با Htaccess
فایل Htaccess قابلیتهای فراوانی برای کنترل ، رفتار با وب سرور و دسترسی وب سایت و کلاینتهای به بخشهای مختلف دارد که در ادامه به توضیح بخش به بخش آنها خواهیم پرداخت.
محدودیت دسترسی با ip های خاص در htaccess
گاهاً سایتها با بازدیدهای غیرواقعی و درخواستهای زیادی از سوی یک آدرس IP مواجه میشوند که در مجموع باعث کاهش لود سایت و همچنین دریافت اسپم میشوند برای این امر شما میتوانید آدرس IP مورد نظر را از طریق فایل Htaccess محدود نمایید.
deny from 1.2.3.4
allow from all
نکته : دقت داشته باشید باید به جای 1.2.3.4 آدرس IP مورد نظر خود را وارد نمایید.
جلوگیری از سرقت فایلهای و فولدرهای درون هاست
کاهاً اطلاعاتی مثل فایلهای قالب اختصاصی شما که بر روی هاست قرار دارند و یا فایلهایی که به صورت zip شده در هاست خود ذخیره کردهاید به راحتی با مرور هاست شما توسط سایرین کشف و به سرقت میرود، برای جلوگیری از این امر کد زیر را در اننهای فایل htaccess قرار دهید.
Options All -Indexes
تغییر عنوان و فرمت فایل اصلی index
شما با استفاده از این کد می توانید نام و فرمت فایل اصلی سایت خود را تغییر دهید
DirectoryIndex file.php file.htm
افزایش امنیت فایل در htaccess
برای عدم دسترسی بازدیدکنندگان و سودجویان به برخی از فایلهای مهم سایت خود مانند فایلهای تنظیمات و پیکربندی ، میتوانید از کد زیر در htaccess استفاده نمایید.
azar.php>
order allow,deny
deny from all
شما میتوانید نام فایل مورد نظر خود را به جای azar.php وارد نمایید.
کش شدن سایت بر روی مرورگر با کد htaccess
همانطور که میدانید کش شدن برخی اطلاعات استاتیک شما بر روی مرورگر بازدیدکنندگان باعث میگردد که بار اضافی از روی منابع سرور مانند CPU ، RAM و ... کاهش مییابد و سرعت سایت و سرور شما افزایش یابد.
برای این امر میتوان کد زیر را در انتهای فایل htaccess وارد نمایید.
# Enables browser caching
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
اضافه کردن mime-type از طریق htaccess
برخی اوقات دیده شده در سایتهایی بر روی فایلی کلیک کرده و سرور از شما سؤال میپرسد که فایل را باز کند و یا دانلود نماید. در این شرایط شما میتوانید کدهای زیر را وارد کرده تا هر جا این پسوندها مشاهده شد ، فایل را بدون پرسش برای دانلود به بازدیدکننده ارسال نماید.
AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov
مخفی کردن لیست دایرکتوریها
یکی از مشکلاتی ممکن است برای هر سایتی پیش آید ، لیست شدن تمامی دایرکتوریها و فایلهای آپلود شده بر روی سایت است که از این طریق افراد سودجو میتوانند فایلهای شما را به صورت دلخواه دانلود کرده و از آنها بهره ببرند. برای بستن اسن وضعیت و جلوگیری از مشاهده آن توسط بازدیدکنددگان میتوانید کد زیر را در فایل Htaccess وارد نمایید.
Options –Indexes
محدود کردن نوع فایلهای قابل اجرا و نمایش
برای حفظ امنیت اطلاعات و دادههای سایت خود میتوان برخی از پسوندها را بر روی سایت بسته تا از اجرای آنها جلوگیری شود. برای این امر شما میتوانید کدهای زیر را در فایل Htaccess خود وارد نمایید.
Options +FollowSymlinks
RewriteEngine On
rewritecond %{REQUEST_FILENAME} !^(.+).css$
rewritecond %{REQUEST_FILENAME} !^(.+).js$
rewritecond %{REQUEST_FILENAME} !file.php$
RewriteRule ^(.+)$ /deny/ [nc]
محدودیت در سایز آپلود فایل
حتماً شما در هنگام کار با سیستم مدیریت محتوا خود مشاهده کردهاید که محدودیتی برای آپلود وجود دارد و این محدودیت گاهاً به شما کمک خواهد کرد تا فایلهای حجیم را آپلود نکرده تا سرور شما دچار کمبود حجم نگردد. به این ترتیب شما میتوانید با استفاده از کد زیر میزان حجم آپلود خود ر مشخص نمایید.
php_value upload_max_filesize 20M
نکته : در کد بالا میزان حجم آپلود بر روی 20 مگابایت تنظیم شده است و شما میتوانید آن را به میزان مورد نظر خود تغییر دهید.
تنظیم محدودیت حافظه memory_limit
میزان محدودیت حافظه اجرایی PHP یکی از نکات بسیار مهم است که به شما برای کنترل میزان مصرف منابع سرور کمک میکند ، بنابراین شما قادر خواهید بود از طریق کد این میزان را تنظیم نمایید.
php_value memory_limit 128M
ایجاد محدودیت در حجم پست ارسالی
از طریق کد زیر میتوان حداکثر حجم هر پست را 3 مگابایت مشخص نمود.
php_value post_max_size 3M
تغییر صفحه پیش فرض
با استفاده از کد زیر در فایل Htaccess شما میتوانید مشخص کنید که در ابتدای لود سایت شما کدام فایلها لود شود و اولویت با کدام فایل است.
#Alternate default index pages
DirectoryIndex first.html index.htm index.html index.php
ایجاد صفحات پیش فرض خطا
تنظیم صفحات خطای پیش فرض به این معناست که اگر در هنگام کار با سایت شما خطایی مانند 404 یا ... رخ دهد ، سرور چه صفحهای را نمایش دهد. برای این شما میتوانید صفحات مورد نظر برای این خطاها طراحی کرده و آنها را در دایرکتوری مورد نظر قرار دهید و از طریق کدهای زیر آنها را در هنگام رخ دادن خطا فراخوانی کنید.
ErrorDocument 401 /error_pages/401.html
ErrorDocument 404 /error_pages/404.html
ErrorDocument 500 /error_pages/500.html
نحوه جلوگیری از عمل Hotlink در فایل htaccess
قابلیت Hotlink Protection که در کنترل پنل سیپنل نیز وجود دارد این امکان را به یک سایت میدهد تا از استفاده فایلها و تصاویر در سایتهای دیگر جلوگیری شود.
به طور مثال اگر در سایت شما لینک دانلود مستقیمی وجود دارد ، سایت دیگری از لینک مستقیم شما استفاده نکرده و نتواند از آن بهره ببرد.
با استفاده از Htaccess شما میتوانید مانع این سوءاستفاده شوید. اما باید در نظر داشته باشید که سرور شما باید قابلیت Mod_rewrite را به صورت فعال داشته باشد تا این کد به صورت صحیح عمل نماید.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
RewriteRule \.(gif|jpg|css)$ - [F]
نکته : در کد بالا پسوندهای gif ، jpg و CSS در حالت محافظت قرار گرفته و شما میتوانید پسوندهای مورد نظر خود را در آنها اضافه کنید و یا جایگزین نمایید و همچنین نام دامنه خود را به جای عبارت yourdomain.com نیز وارد کنید.
مسدود کردن حملات XSS
حملات XSS یکی از معروفترین و محبوبترین حملات در بین حملات بر روی وبسایتها است که با تزریق کد در فایلهای مختلف صورت میگیرد. برای جلوگیری از این نوع حمله بر روی سایت خود میتوانید از کد زیر در فایل Htaccess استفاده کرده تا سد محمکی برای حملات XSS ایجاد نمایید.
# Blocks some XSS attacks
RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F,L]
حفاظت از htaccess
تا به این جا شما شاهد آن بودید که میتوان کارهای بسیار مهمی را با فایل htaccess انجام داد ، بنابراین محافظت از خود این فایل بسیار مهم است و شما باید از این فایل در مقابل دسترسی غیرمجاز جلوگیری نمایید ، به این ترتیب شما باید کدهای زیر را برای محافظت از این فایل وارد نمایید.
<files ".htaccess">
order allow,deny
deny from all
به این ترتیب شما میتوانید فایل Htaccess خود را نسبت به سایت پیکربندی نمایید.
همچنین شما میتوانید با مراجعه به آموزش ریدایرکت توسط Htaccess از نحوه ریدایرکت صفحات توسط این فایل مطلع شوید.
در پایان قصد داریم به معرفی یک سایت برای ساخت Htaccess بپردازیم تا در صورت نیاز از آن برای پیکربندی فایل htaccess سایت خود بپردازید.
سایت htaccesseditor.com یکی از معتبرترین سایتهای برای ساخت Htaccess است که با ورود به آن و تنظیم تمامی موارد ذکر شده به صورت گرافیکی ، در پایان یک فایل Htaccess در اختیار شما قرار خواهد داد و شما باید کدهای آن را در فایل Htaccess خود کپی نمایید.
امیدواریم در پایان از آموزش کامل کار با Htaccess استفاده لازم را برده باشید.
کاربر گرامی شما میتوانید سؤالات مربوط به این آموزش را در بخش کامنتها عنوان کرده و در همین قسمت پاسخ خود را دریافت کنید و یا برای رفع مشکلات دیگر در زمینه آموزشهای آذرآنلاین به بخش Community مراجعه کرده و مشکل خود را در آن مطرح نمایید تا در اسرع وقت کاربران دیگر و کارشناسان به سؤالات شما پاسخ دهند.