همانطور که میدانید فایل Htaccess یک فایل مخفی در دایرکتوری اصلی وب (Public_html) است که برخی از تنظیمات کلی وب سرور و نوع رفتار وب سرور با سایت شما را مشخص میکند. Htaccess یک فایل متنی بدون پسوند است که قابلیت آن را دارد تا در هر دایرکتوری از وب قرار گیرد و رفتار هر دایرکتوری به جداگانه با وب سرور تنظیم نماید.
در این مطلب ما قصد داریم به توضیح کلی دستورات و مواردی که در Htaccess قابل استفاده هستند پرداخته تا با آنها آشنا شده و در پایان بتوانید این فایل را به صورت کاملاً حرفهای و سفارشی برای وب سایت خود تهیه و تنظیم نمایید.
دقت داشته باشید ممکن است در هاستهای اشتراکی توسط سرویس دهنده برخی تنظیمات در فایلهای پیکربندی PHP انجام شده باشد و یا عدم وجود برخی از ماژولها در سرور ، کدها به درستی کار نکنند و سایت را از دسترس خارج سازند. بنابراین بهترین راه حل این است که کدها را به صورت تک به تک در فایل Htaccess قرار داده و پس از اطمینان از عملکرد سایت و کد درج شده ، سایر کدها را به دلخواه وارد نمایید.
در ادامه با آموزش کامل کار با Htaccess همراه ما باشید.
فایل Htaccess قابلیتهای فراوانی برای کنترل ، رفتار با وب سرور و دسترسی وب سایت و کلاینتهای به بخشهای مختلف دارد که در ادامه به توضیح بخش به بخش آنها خواهیم پرداخت.
گاهاً سایتها با بازدیدهای غیرواقعی و درخواستهای زیادی از سوی یک آدرس IP مواجه میشوند که در مجموع باعث کاهش لود سایت و همچنین دریافت اسپم میشوند برای این امر شما میتوانید آدرس IP مورد نظر را از طریق فایل Htaccess محدود نمایید.
deny from 1.2.3.4 allow from all
نکته : دقت داشته باشید باید به جای 1.2.3.4 آدرس IP مورد نظر خود را وارد نمایید.
کاهاً اطلاعاتی مثل فایلهای قالب اختصاصی شما که بر روی هاست قرار دارند و یا فایلهایی که به صورت zip شده در هاست خود ذخیره کردهاید به راحتی با مرور هاست شما توسط سایرین کشف و به سرقت میرود، برای جلوگیری از این امر کد زیر را در انتهای فایل htaccess قرار دهید.
Options All -Indexes
شما با استفاده از این کد می توانید نام و فرمت فایل اصلی سایت خود را تغییر دهید
DirectoryIndex file.php file.htm
برای عدم دسترسی بازدیدکنندگان و سودجویان به برخی از فایلهای مهم سایت خود مانند فایلهای تنظیمات و پیکربندی ، میتوانید از کد زیر در htaccess استفاده نمایید.
<files test.php> order allow,deny deny from all
شما میتوانید نام فایل مورد نظر خود را به جای test.php وارد نمایید.
همانطور که میدانید کش شدن برخی اطلاعات استاتیک شما بر روی مرورگر بازدیدکنندگان باعث میگردد که بار اضافی از روی منابع سرور مانند 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"
برخی اوقات دیده شده در سایتهایی بر روی فایلی کلیک کرده و سرور از شما سؤال میپرسد که فایل را باز کند و یا دانلود نماید. در این شرایط شما میتوانید کدهای زیر را وارد کرده تا هر جا این پسوندها مشاهده شد ، فایل را بدون پرسش برای دانلود به بازدیدکننده ارسال نماید.
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 مگابایت تنظیم شده است و شما میتوانید آن را به میزان مورد نظر خود تغییر دهید.
میزان محدودیت حافظه اجرایی 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 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 یکی از معروفترین و محبوبترین حملات در بین حملات بر روی وبسایتها است که با تزریق کد در فایلهای مختلف صورت میگیرد. برای جلوگیری از این نوع حمله بر روی سایت خود میتوانید از کد زیر در فایل Htaccess استفاده کرده تا سد محکمی برای حملات XSS ایجاد نمایید.
# Blocks some XSS attacks <IfModule mod_rewrite.c> 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] </IfModule>
تا به این جا شما شاهد آن بودید که میتوان کارهای بسیار مهمی را با فایل htaccess انجام داد ، بنابراین محافظت از خود این فایل بسیار مهم است و شما باید از این فایل در مقابل دسترسی غیرمجاز جلوگیری نمایید ، به این ترتیب شما باید کدهای زیر را برای محافظت از این فایل وارد نمایید.
<files ".htaccess"> order allow,deny deny from all </files>
به این ترتیب شما میتوانید فایل Htaccess خود را نسبت به سایت پیکربندی نمایید.
همچنین شما میتوانید با مراجعه به آموزش ریدایرکت توسط Htaccess از نحوه ریدایرکت صفحات توسط این فایل مطلع شوید.
در پایان قصد داریم به معرفی یک سایت برای ساخت Htaccess بپردازیم تا در صورت نیاز از آن برای پیکربندی فایل htaccess سایت خود بپردازید.
سایت htaccesseditor.com یکی از معتبرترین سایتهای برای ساخت Htaccess است که با ورود به آن و تنظیم تمامی موارد ذکر شده به صورت گرافیکی ، در پایان یک فایل Htaccess در اختیار شما قرار خواهد داد و شما باید کدهای آن را در فایل Htaccess خود کپی نمایید.
امیدواریم در پایان از آموزش کامل کار با Htaccess استفاده لازم را برده باشید.
کاربر گرامی شما میتوانید سؤالات مربوط به این آموزش را در بخش کامنتها عنوان کرده و در همین قسمت پاسخ خود را دریافت کنید و یا برای رفع مشکلات دیگر در زمینه آموزشها به ویرگول مراجعه کرده و مشکل خود را در آن مطرح نمایید تا در اسرع وقت کاربران دیگر و کارشناسان به سؤالات شما پاسخ دهند.