فایل .htaccess یکی از ابزارهای قدرتمند برای مدیریت تنظیمات وبسرور است که امکان پیکربندی و اعمال قوانین مختلف برای وبسایتها را فراهم میکند. این فایل به صورت مستقیم بر عملکرد سرور و امنیت سایت تاثیر میگذارد و بهطور گسترده در وبسرورهای Apache و LiteSpeed استفاده میشود. از طریق .htaccess میتوانید تنظیماتی مانند محدودیت دسترسی، بازنویسی URL، تنظیمات کش، بهبود عملکرد سایت و افزایش امنیت اعمال کنید.
از آنجا که فایل .htaccess نقش کلیدی در پیکربندی سایت دارد، محافظت از این فایل در برابر دسترسیهای غیرمجاز و حملات احتمالی بسیار اهمیت دارد. در این مطلب، به بررسی دستورات مختلف برای افزایش امنیت و کارایی وبسایت از طریق فایل .htaccess خواهیم پرداخت. این دستورها شامل مسدود کردن دسترسیهای غیرمجاز، محافظت از فایلهای مهم، جلوگیری از سرقت اطلاعات، محدود کردن آپلود فایلها و تنظیم کش مرورگر است.
فایل .htaccess چیست؟
فایل .htaccess یک فایل متنی بدون پسوند است که در دایرکتوری اصلی وبسایت (معمولاً public_html) قرار دارد. این فایل به شما اجازه میدهد تا تنظیمات مختلفی را برای وبسرور اعمال کنید، بدون اینکه نیاز به تغییر در کدهای اصلی سایت داشته باشید. از طریق .htaccess میتوانید رفتار وبسرور و نحوه تعامل آن با سایت خود را تغییر دهید و در نتیجه عملکرد و امنیت سایت را بهبود بخشید.
به طور مثال، شما میتوانید با استفاده از دستورات موجود در .htaccess آدرسهای URL را بازنویسی کنید، دسترسی به برخی قسمتهای سایت را محدود کنید، کش مرورگر را تنظیم کنید و حتی برخی تنظیمات امنیتی را اعمال کنید. در واقع، این فایل نقش مهمی در بهینهسازی و افزایش امنیت وبسایتها ایفا میکند.
نحوه عملکرد فایل .htaccess
این فایل میتواند در هر دایرکتوری از وبسایت قرار گیرد و در صورتی که در دایرکتوری خاصی قرار بگیرد، تنظیمات آن تنها بر روی آن دایرکتوری و دایرکتوریهای فرزند آن اعمال خواهد شد. به این ترتیب، میتوانید تنظیمات مختلفی برای بخشهای مختلف سایت خود اعمال کنید.
این فایل به صورت خودکار توسط وبسرور خوانده میشود و دستورات موجود در آن را اجرا میکند. البته توجه داشته باشید که در هاستهای اشتراکی، برخی تنظیمات در فایلهای پیکربندی PHP یا سایر ماژولها ممکن است از قبل تنظیم شده باشد، و در صورت عدم وجود برخی از ماژولها در سرور، دستورات .htaccess ممکن است به درستی اجرا نشوند و باعث بروز مشکلات در دسترسی به سایت شوند.
فایل htaccess چیست؟ آشنایی با کاربردهای این فایل و ساخت آن
نکات مهم در استفاده از .htaccess
-
تست تکتک کدها: پیشنهاد میشود که برای اطمینان از عملکرد صحیح، کدها را به صورت تک به تک وارد کنید و پس از هر تغییر، عملکرد سایت را بررسی نمایید. این روش از بروز مشکلات جدی جلوگیری میکند.
-
وجود نسخه پشتیبان: قبل از هر گونه تغییر در فایل .htaccess، بهتر است از نسخه قبلی آن نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل، بتوانید به راحتی آن را بازیابی کنید.
-
بررسی ماژولهای سرور: برخی از دستورات .htaccess نیاز به فعال بودن ماژولهای خاص در وبسرور دارند (مانند mod_rewrite یا mod_headers). در هاستهای اشتراکی این ماژولها ممکن است فعال نباشند و برای کارکرد صحیح کدها نیاز به فعالسازی آنها باشد.
محدودیت دسترسی با IP های خاص در فایل .htaccess
گاهی اوقات سایتها با درخواستهای زیاد و غیرواقعی از یک یا چند آدرس IP مواجه میشوند که این امر میتواند باعث کندی لود سایت، افزایش بار سرور و دریافت اسپم شود. در این مواقع، میتوانید از فایل .htaccess برای محدود کردن دسترسی به سایت از آن آدرسهای IP خاص استفاده کنید.
فایل .htaccess به شما این امکان را میدهد که دسترسی به وبسایت خود را برای آدرسهای IP مشخصی مسدود کنید یا فقط به برخی از آنها اجازه دسترسی بدهید. این ویژگی به ویژه در مقابله با حملات DDoS، اسکنرهای خودکار و درخواستهای اسپم مفید است. برای محدود کردن دسترسی به سایت از یک آدرس IP خاص، از دستورات زیر استفاده میشود:
1. مسدود کردن یک IP خاص
اگر بخواهید دسترسی از یک آدرس IP خاص را مسدود کنید، میتوانید از دستور deny from استفاده کنید. این دستور باعث میشود که آن IP نتواند به سایت شما دسترسی پیدا کند.
deny from 1.2.3.4
allow from all
در این مثال:
-
deny from 1.2.3.4: دسترسی به سایت را از آدرس IP 1.2.3.4 مسدود میکند.
-
allow from all: به دیگر کاربران از تمامی IP ها اجازه دسترسی به سایت داده میشود.
نکته: به جای 1.2.3.4، باید آدرس IP مورد نظر خود را وارد کنید که میخواهید دسترسی آن را محدود کنید.
2. مسدود کردن مجموعهای از IP ها
اگر بخواهید دسترسی به سایت را از مجموعهای از آدرسهای IP محدود کنید، میتوانید از دستورات مشابه استفاده کنید:
deny from 1.2.3.4
deny from 5.6.7.8
allow from all
در این مثال، دسترسی به سایت برای IP های 1.2.3.4 و 5.6.7.8 مسدود خواهد شد، ولی سایر IP ها همچنان میتوانند به سایت دسترسی داشته باشند.
3. محدود کردن دسترسی فقط به برخی از IP ها
در صورتی که بخواهید فقط به برخی از آدرسهای IP دسترسی بدهید و سایر آدرسها را مسدود کنید، میتوانید از دستورات زیر استفاده کنید:
order deny,allow
deny from all
allow from 192.168.1.1
allow from 10.0.0.2
در این مثال:
-
deny from all: بهطور پیشفرض دسترسی را از تمامی آدرسها مسدود میکند.
-
allow from 192.168.1.1 و allow from 10.0.0.2: به این دو آدرس IP خاص اجازه دسترسی داده میشود.
جلوگیری از سرقت فایلها و پوشهها در هاست با استفاده از .htaccess
گاهی اوقات ممکن است فایلهای مهم و حساس شما مانند قالبهای اختصاصی، فایلهای فشرده شده (ZIP)، یا دیگر فایلهایی که در هاست خود ذخیره کردهاید به راحتی قابل دسترسی برای دیگران باشند. این امر میتواند منجر به سرقت اطلاعات و نقض امنیت سایت شما شود. برای جلوگیری از دسترسی غیرمجاز به این فایلها و پوشهها، میتوانید از دستوراتی در فایل .htaccess استفاده کنید تا امنیت بیشتری را برای سایت خود فراهم کنید.
یکی از روشهای مؤثر برای جلوگیری از دسترسی به محتویات پوشهها، غیرفعال کردن نمایش فهرست پوشهها (Directory Indexing) است. در صورتی که این ویژگی فعال باشد، اگر شخصی آدرس پوشهای را وارد کند که فاقد فایل index (مانند index.html یا index.php) باشد، لیستی از فایلهای موجود در آن پوشه نمایش داده خواهد شد. این امر میتواند به هکرها یا افراد غیرمجاز کمک کند تا به فایلهای حساس دسترسی پیدا کنند.
دستور جلوگیری از نمایش فهرست پوشهها
برای جلوگیری از نمایش فهرست پوشهها در هاست و افزایش امنیت، میتوانید دستور زیر را به انتهای فایل .htaccess خود اضافه کنید:
Options All -Indexes
توضیحات دستور:
-
Options All: این دستور به وبسرور میگوید که تمام گزینههای پیشفرض را برای پوشهها فعال کند.
-
-Indexes: این دستور به طور خاص ویژگی نمایش فهرست پوشهها را غیرفعال میکند.
پس از اضافه کردن این کد، اگر کسی آدرس پوشهای را در مرورگر وارد کند که فاقد فایلهای index باشد، به جای نمایش لیست فایلها، یک صفحه خطای 403 Forbidden مشاهده خواهد کرد و از دسترسی به فایلهای موجود در آن پوشه جلوگیری میشود.
9 ترفند کاربردی با فایل htaccess. برای افزایش امنیت پوشه uploads وردپرس
تغییر عنوان و فرمت فایل اصلی سایت با استفاده از .htaccess
گاهی اوقات ممکن است بخواهید فایل پیشفرض یا اصلی که هنگام وارد کردن آدرس دامنه در مرورگر بارگذاری میشود را تغییر دهید. به طور پیشفرض، بسیاری از وبسایتها از فایلهای index.html یا index.php به عنوان فایل اصلی استفاده میکنند، اما در برخی موارد ممکن است بخواهید این فایل را به یک نام یا فرمت دیگر تغییر دهید. برای انجام این کار، میتوانید از فایل .htaccess استفاده کنید.
دستور DirectoryIndex
دستور DirectoryIndex به وبسرور این امکان را میدهد که فایل پیشفرض یا اصلی را که در هر پوشه باید بارگذاری شود، مشخص کنید. این دستور به طور معمول برای تغییر فایل اصلی استفاده میشود و به شما این اجازه را میدهد که نام و فرمت فایلهای اصلی سایت خود را تغییر دهید.
نحوه استفاده از دستور DirectoryIndex
برای تغییر نام و فرمت فایل اصلی سایت خود، باید دستور DirectoryIndex را در فایل .htaccess قرار دهید. به عنوان مثال، برای تغییر فایل اصلی به file.php یا file.htm، میتوانید کد زیر را استفاده کنید:
DirectoryIndex file.php file.htm
توضیحات دستور:
-
file.php: اولین فایل که وبسرور تلاش میکند بارگذاری کند، در صورتی که موجود باشد. اگر این فایل موجود نباشد، سرور به سراغ فایل بعدی میرود.
-
file.htm: دومین گزینهای که در صورت نبود فایل file.php برای بارگذاری، توسط وبسرور انتخاب میشود.
افزایش امنیت فایلها در فایل .htaccess
یکی از بهترین روشها برای افزایش امنیت سایت، جلوگیری از دسترسی غیرمجاز به فایلهای حساس و پیکربندی سایت است. برای مثال، فایلهای تنظیمات مانند config.php یا فایلهای دیگر که ممکن است حاوی اطلاعات حساس مانند پایگاه داده یا تنظیمات امنیتی باشند، باید در برابر دسترسیهای غیرمجاز محافظت شوند.
با استفاده از فایل .htaccess، میتوانید دسترسی به این فایلهای حساس را محدود کنید و فقط اجازه دهید که کاربرانی با شرایط خاص (مثلاً از آدرسهای IP خاص) به آنها دسترسی داشته باشند. این کار از طریق محدود کردن دسترسی به فایلها به راحتی قابل انجام است.
دستور مسدود کردن دسترسی به یک فایل خاص
برای جلوگیری از دسترسی به یک فایل خاص، مانند azar.php، میتوانید دستور زیر را در فایل .htaccess خود قرار دهید:
<Files "azar.php">
order allow,deny
deny from all
</Files>
توضیحات دستور:
-
<Files "azar.php">: این بخش مشخص میکند که تنظیمات زیر فقط برای فایل azar.php اعمال میشود. شما میتوانید نام هر فایل حساس دیگری که میخواهید از دسترسی غیرمجاز محافظت کنید را به جای azar.php وارد کنید.
-
order allow,deny: این دستور ترتیب دستورات اجازه و مسدود کردن دسترسی را مشخص میکند. ابتدا دسترسیها مجاز میشوند و سپس محدودیتها اعمال میشود.
-
deny from all: این دستور به وبسرور میگوید که دسترسی به فایل azar.php از همه IP ها مسدود شود.
-
</Files>: این بخش به پایان بخش تنظیمات مربوط به فایل خاص اشاره دارد.
کش کردن سایت بر روی مرورگر با استفاده از کد .htaccess
کش مرورگر یکی از تکنیکهای مهم برای بهینهسازی سرعت سایت و کاهش بار سرور است. زمانی که اطلاعات استاتیک سایت شما مانند تصاویر، فایلهای CSS و جاوا اسکریپت در کش مرورگر بازدیدکنندگان ذخیره میشود، مرورگر قادر است در بازدیدهای بعدی از آنها بدون نیاز به درخواست دوباره از سرور استفاده کند. این کار باعث کاهش بار اضافی از روی منابع سرور مانند CPU، RAM و پهنای باند شده و در نتیجه سرعت بارگذاری صفحات وب را افزایش میدهد. برای فعالسازی کش مرورگر، میتوانید تنظیمات مربوطه را در فایل .htaccess سایت خود قرار دهید.
کد کش کردن مرورگر در .htaccess
برای فعالسازی کش مرورگر برای انواع مختلف فایلهای استاتیک، کد زیر را به انتهای فایل .htaccess خود اضافه کنید:
Enables browser caching
ExpiresActive On
Set expiration dates for various file types
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"
Default expiration for other files
ExpiresDefault "access 2 days"
توضیحات کد:
-
ExpiresActive On: این دستور کش مرورگر را فعال میکند و به مرورگرها میگوید که فایلهای استاتیک را در کش ذخیره کنند.
-
ExpiresByType: این دستور به شما اجازه میدهد برای هر نوع فایل مشخص کنید که چقدر زمان برای ذخیره شدن در کش مرورگر در نظر گرفته شود. برای مثال:
-
image/jpg, image/jpeg, image/gif, image/png: تصاویر با فرمتهای مختلف برای یک سال در کش مرورگر ذخیره میشوند.
-
text/css: فایلهای CSS به مدت یک ماه در کش مرورگر ذخیره میشوند.
-
application/pdf, text/x-javascript, application/x-shockwave-flash: فایلهای PDF، جاوا اسکریپت و فلش به مدت یک ماه در کش مرورگر ذخیره میشوند.
-
image/x-icon: فایلهای آیکون به مدت یک سال کش میشوند.
-
ExpiresDefault "access 2 days": این دستور برای سایر فایلها به طور پیشفرض یک مدت زمان 2 روزه برای کش در نظر میگیرد.
اضافه کردن MIME-Type از طریق فایل .htaccess
MIME-Type (نوع رسانهای) نوع فایلهایی را که یک وبسرور ارسال میکند مشخص میکند. گاهی اوقات هنگام کلیک بر روی برخی فایلها، سرور از کاربر میخواهد که انتخاب کند که فایل را باز کند یا دانلود نماید. این مشکل ممکن است به دلیل عدم شناسایی نوع صحیح فایل توسط سرور باشد. برای رفع این مشکل و ارسال فایلها برای دانلود به طور مستقیم (بدون پرسش از کاربر)، میتوانید MIME-Type فایلها را به صورت دستی از طریق فایل .htaccess تنظیم کنید.
دستور AddType
دستور AddType به وبسرور میگوید که برای پسوندهای خاص فایلها، نوع MIME خاصی را ارسال کند. این دستور به شما این امکان را میدهد که نوع فایلها را به شکلی سفارشی تنظیم کنید تا سرور بتواند فایلها را به درستی ارسال کند، به جای اینکه از کاربر بپرسد که فایل را باز کند یا دانلود نماید.
نمونه دستور برای تنظیم MIME-Type
برای تنظیم نوع MIME برای فایلهایی با پسوندهای خاص مانند .pdf، .zip و .mov، میتوانید کدهای زیر را در فایل .htaccess خود قرار دهید:
AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov
توضیحات کد:
-
AddType application/octet-stream .pdf: این دستور به وبسرور میگوید که فایلهایی با پسوند .pdf را با MIME-Type application/octet-stream ارسال کند. این MIME-Type باعث میشود که فایل به عنوان یک فایل دانلودی برای کاربر ارسال شود.
-
AddType application/octet-stream .zip: برای فایلهای .zip نیز همین دستور اعمال میشود تا کاربر بدون نیاز به تایید، فایل فشرده را دانلود کند.
-
AddType application/octet-stream .mov: به همین ترتیب، برای فایلهای ویدئویی با پسوند .mov، این دستور استفاده میشود تا فایل به طور مستقیم برای دانلود ارسال گردد.
تنظیمات فایل htaccess مناسب سئو سایت
مخفی کردن لیست دایرکتوریها با استفاده از فایل .htaccess
یکی از مشکلات رایج در برخی از وبسایتها، نمایش لیست دایرکتوریها و فایلهای موجود در سرور است. زمانی که کاربر یا رباتها وارد دایرکتوری خاصی از سایت شما میشوند و فایل index (مثل index.php یا index.html) وجود نداشته باشد، وبسرور ممکن است به صورت پیشفرض لیست فایلها و پوشههای موجود در آن دایرکتوری را نمایش دهد. این موضوع میتواند مشکلات امنیتی به دنبال داشته باشد، زیرا افراد میتوانند به راحتی از فایلهای موجود در سرور شما اطلاع پیدا کنند و حتی به سرقت فایلها بپردازند. برای جلوگیری از این مشکل و مخفی کردن لیست دایرکتوریها از دید عموم، میتوانید از دستور Options -Indexes در فایل .htaccess استفاده کنید.
دستور برای مخفی کردن لیست دایرکتوریها
کد زیر را به انتهای فایل .htaccess سایت خود اضافه کنید:
Options -Indexes
توضیحات دستور:
-
Options -Indexes: این دستور به وبسرور میگوید که لیست دایرکتوریها را نمایش ندهد. به عبارت دیگر، اگر فایلی مانند index.html یا index.php در دایرکتوری وجود نداشته باشد، وبسرور از نمایش لیست محتویات آن دایرکتوری جلوگیری میکند.
محدود کردن نوع فایلهای قابل اجرا و نمایش در سایت با استفاده از فایل .htaccess
برای حفظ امنیت اطلاعات و جلوگیری از خطرات احتمالی ناشی از اجرای فایلهای ناخواسته یا مخرب، یکی از روشها محدود کردن انواع فایلهای قابل اجرا و نمایش است. در وبسایتها، ممکن است برخی فایلها مانند اسکریپتهای PHP یا فایلهای اجرایی به صورت تصادفی یا از طریق آسیبپذیریها اجرا شوند و به سایت آسیب برسانند. برای جلوگیری از این نوع حملات، میتوان به راحتی با استفاده از دستوراتی در فایل .htaccess، انواع خاصی از فایلها را از اجرا و نمایش منع کرد.
دستوراتی برای محدود کردن فایلهای قابل اجرا و نمایش
با استفاده از دستورات زیر در فایل .htaccess، میتوانید از اجرای فایلهایی با پسوندهای خاص جلوگیری کنید و تنها فایلهایی با پسوندهای مجاز مانند CSS و JavaScript را اجازه دهید.
Options +FollowSymlinks
RewriteEngine On
جلوگیری از دسترسی به فایلهای غیر مجاز با پسوندهای خاص
RewriteCond %{REQUEST_FILENAME} !^(.+)\.css$
RewriteCond %{REQUEST_FILENAME} !^(.+)\.js$
RewriteCond %{REQUEST_FILENAME} !^file\.php$
هدایت درخواستهای غیرمجاز به دایرکتوری 'deny'
RewriteRule ^(.+)$ /deny/ [nc]
توضیحات کد:
-
Options +FollowSymlinks: این دستور به وبسرور میگوید که از پیوندهای نمادین (symlinks) پشتیبانی کند. این گزینه اغلب لازم است تا تنظیمات URL rewriting به درستی کار کند.
-
RewriteEngine On: این دستور موتور بازنویسی (URL rewriting) را فعال میکند. برای استفاده از دستورات RewriteCond و RewriteRule، باید این گزینه فعال باشد.
-
RewriteCond %{REQUEST_FILENAME} !^(.+).css$: این دستور بررسی میکند که درخواست فایل از نوع CSS نباشد. یعنی اگر درخواست فایل با پسوند .css باشد، دستورات بعدی اعمال نمیشود.
-
RewriteCond %{REQUEST_FILENAME} !^(.+).js$: مشابه دستور قبلی، این دستور بررسی میکند که درخواست فایل از نوع جاوا اسکریپت (.js) نباشد.
-
RewriteCond %{REQUEST_FILENAME} !^file.php$: این دستور هم به صورت مشابه چک میکند که درخواست برای فایل PHP خاص (در اینجا file.php) نباشد.
-
RewriteRule ^(.+)$ /deny/ [nc]: این دستور تمام درخواستها به جز درخواستهای برای فایلهای CSS، JavaScript و PHP خاص را به پوشه deny/ هدایت میکند. این پوشه میتواند شامل یک صفحه یا پیامی باشد که به بازدیدکنندگان اعلام کند که دسترسی به فایلهای مورد نظر ممنوع است. گزینه [nc] برای نادیده گرفتن تفاوتهای بزرگ و کوچک حروف است.
محدودیت در سایز آپلود فایل با استفاده از فایل .htaccess
یکی از مسائل رایج در مدیریت سایتها و سیستمهای مدیریت محتوا، محدودیت در اندازه فایلهای قابل آپلود است. بهطور پیشفرض، بسیاری از سرورها تنظیمات خاصی برای محدود کردن اندازه فایلهای آپلود شده دارند تا از بار زیاد بر روی سرور جلوگیری کنند و از امنیت سرور محافظت کنند. این محدودیتها ممکن است بهویژه برای وبسایتهایی که به کاربران امکان بارگذاری فایلها را میدهند، اهمیت زیادی داشته باشد. با استفاده از فایل .htaccess، میتوانید به راحتی محدودیتهایی برای اندازه فایلهای آپلود شده تعیین کنید. در این صورت، اگر کاربر سعی کند فایلی بزرگتر از حد مجاز آپلود کند، سرور درخواست او را رد خواهد کرد.
دستور برای محدودیت در حجم آپلود فایل
برای محدود کردن حجم فایلهای قابل آپلود در سایت خود، کافی است کد زیر را به فایل .htaccess خود اضافه کنید:
php_value upload_max_filesize 20M
توضیحات کد:
-
php_value upload_max_filesize 20M: این دستور به وبسرور میگوید که حداکثر اندازه فایلهای آپلود شده به میزان 20 مگابایت محدود باشد. شما میتوانید عدد 20M را تغییر دهید و آن را با هر مقدار دلخواه، مثل 10M برای 10 مگابایت، 50M برای 50 مگابایت، و غیره تنظیم کنید. (M در انتهای مقدار نشاندهنده مگابایت است. همچنین میتوانید از K برای کیلوبایت و G برای گیگابایت استفاده کنید.)
تنظیم محدودیت حافظه اجرایی PHP (memory_limit) در فایل .htaccess
محدودیت حافظه اجرایی PHP (memory_limit) یکی از مهمترین تنظیماتی است که برای کنترل میزان مصرف منابع سرور و بهینهسازی عملکرد سایت شما باید به آن توجه داشته باشید. این تنظیم به شما امکان میدهد تا مقدار حافظهای که هر اسکریپت PHP میتواند استفاده کند را محدود کنید. اگر یک اسکریپت به طور پیشفرض از مقدار حافظه بیش از حد استفاده کند، ممکن است به کاهش عملکرد سرور یا حتی کرش کردن سرور منجر شود. به همین دلیل، تنظیم memory_limit میتواند کمک بزرگی در بهینهسازی و مدیریت منابع سرور باشد.
دستور برای تنظیم محدودیت حافظه (memory_limit)
برای تنظیم محدودیت حافظه در PHP از طریق فایل .htaccess، میتوانید از دستور زیر استفاده کنید:
php_value memory_limit 128M
توضیحات کد:
php_value memory_limit 128M: این دستور به وبسرور میگوید که محدودیت حافظه PHP را برای اسکریپتها روی 128 مگابایت قرار دهد. شما میتوانید این مقدار را تغییر دهید. برای مثال، میتوانید مقدار حافظه را به 256M یا 512M افزایش دهید، یا آن را به 64M کاهش دهید، بستگی به نیاز سایت و سرور شما دارد. (M در انتهای عدد نشاندهنده مگابایت است. همچنین میتوانید از K برای کیلوبایت و G برای گیگابایت استفاده کنید.)
ایجاد محدودیت در حجم پست ارسالی با استفاده از فایل .htaccess
یکی از تنظیمات مهم در مدیریت وبسایتها، تعیین محدودیت برای حجم پستهای ارسالی (برای مثال، در فرمهای ارسال محتوا، آپلود فایلها یا ارسال دادهها) است. این کار بهویژه برای جلوگیری از ارسال فایلهای حجیم یا بارگذاری دادههای بیش از حد که میتواند منجر به مشکلاتی در سرور یا کاهش سرعت سایت شود، ضروری است. با استفاده از دستور php_value post_max_size
در فایل .htaccess، میتوانید حداکثر حجم پستهای ارسالی را محدود کنید. این کار کمک میکند تا از ارسال دادههای سنگین که ممکن است به سرور فشار وارد کند، جلوگیری شود.
دستور برای ایجاد محدودیت در حجم پست ارسالی
برای تعیین حداکثر حجم پست ارسالی، میتوانید از کد زیر در فایل .htaccess استفاده کنید:
php_value post_max_size 3M
توضیحات کد:
-
php_value post_max_size 3M: این دستور به وبسرور میگوید که حداکثر حجم پستهای ارسالی که میتواند دریافت کند را به 3 مگابایت محدود کند. شما میتوانید این مقدار را بسته به نیاز سایت خود تغییر دهید، مثلاً 5M برای 5 مگابایت یا 10M برای 10 مگابایت.(M در انتهای عدد نشاندهنده مگابایت است. همچنین میتوانید از K برای کیلوبایت و G برای گیگابایت استفاده کنید.)
تغییر صفحه پیشفرض سایت با استفاده از فایل .htaccess
در اکثر وبسایتها، هنگامی که کاربران آدرس دامنه را وارد میکنند، وبسرور بهطور خودکار یکی از فایلهای پیشفرض را لود میکند. این فایل معمولاً شامل index.html یا index.php است. اما ممکن است بخواهید تغییراتی در این تنظیمات ایجاد کنید و به جای این فایلهای پیشفرض، فایلی خاص مانند first.html یا هر فایل دیگری را به عنوان صفحه پیشفرض لود کنید. با استفاده از فایل .htaccess میتوانید ترتیب لود صفحات پیشفرض سایت خود را تنظیم کنید. در اینجا، به کمک دستور DirectoryIndex میتوانید مشخص کنید که وبسرور ابتدا کدام فایلها را بارگذاری کند و اولویت با کدام فایل است.
دستور برای تغییر صفحه پیشفرض
برای تغییر صفحه پیشفرض سایت خود و تعیین اولویت لود فایلها، میتوانید از کد زیر در فایل .htaccess استفاده کنید:
# Alternate default index pages
DirectoryIndex first.html index.htm index.html index.php
توضیحات کد:
-
DirectoryIndex: این دستور به وبسرور میگوید که هنگام درخواست به دایرکتوری خاص (مانند / یا /about/) چه فایلهایی باید بهطور پیشفرض بارگذاری شود.
در مثال بالا، اولویت به ترتیب به این صورت تعیین شده است:
- first.html اولین فایل است که در صورت وجود در دایرکتوری، بارگذاری میشود.
- اگر فایل first.html وجود نداشته باشد، فایل index.htm بارگذاری خواهد شد.
- اگر فایل index.htm نیز موجود نباشد، فایل index.html بارگذاری میشود.
- در آخرین مرحله، اگر هیچکدام از فایلهای فوق موجود نباشند، فایل index.php بارگذاری میشود.
ایجاد صفحات پیشفرض خطا با استفاده از فایل .htaccess
تنظیم صفحات خطای پیشفرض یکی از تنظیمات مهم در هر وبسایتی است که به بهبود تجربه کاربری و مدیریت بهتر خطاها کمک میکند. به عنوان مثال، زمانی که کاربری به صفحهای که وجود ندارد (مانند 404 Not Found) مراجعه میکند، به جای دیدن صفحه خطای پیشفرض سرور، میتوانید صفحهای سفارشی و طراحی شده برای خطا نمایش دهید. این کار میتواند ظاهر سایت شما را حرفهایتر کرده و تجربه بهتری برای بازدیدکنندگان فراهم کند.
دستور برای ایجاد صفحات پیشفرض خطا
برای تعیین صفحات پیشفرض خطا، میتوانید از دستور ErrorDocument در فایل .htaccess استفاده کنید. کدهای زیر به شما کمک میکنند که صفحات سفارشی برای خطاهای مختلف ایجاد کنید:
صفحه خطای 401 (عدم دسترسی)
ErrorDocument 401 /error_pages/401.html
صفحه خطای 404 (یافت نشد)
ErrorDocument 404 /error_pages/404.html
صفحه خطای 500 (خطای سرور داخلی)
ErrorDocument 500 /error_pages/500.html
توضیحات کد:
-
ErrorDocument 401: این دستور به سرور میگوید که اگر خطای 401 (عدم دسترسی) رخ دهد، صفحه 401.html که در دایرکتوری /error_pages/ قرار دارد نمایش داده شود. این نوع خطا معمولاً زمانی رخ میدهد که کاربر به محتوای محافظت شده با رمز عبور دسترسی نداشته باشد.
-
ErrorDocument 404: این دستور برای خطای 404 است که وقتی کاربر به صفحهای که وجود ندارد دسترسی پیدا کند، به نمایش صفحه 404.html هدایت میشود.
-
ErrorDocument 500: این دستور برای خطای 500 است که معمولاً زمانی رخ میدهد که سرور با مشکل داخلی مواجه شده باشد. در این حالت، صفحه 500.html بهعنوان پیغام خطا نمایش داده میشود.
جلوگیری از عمل Hotlink در فایل .htaccess
Hotlinking به معنای استفاده از منابع (فایلها، تصاویر، ویدئوها و غیره) موجود در سرور یک سایت توسط دیگر سایتها است، بدون اینکه این فایلها را بر روی سرور خودشان بارگذاری کنند. به عنوان مثال، اگر شما تصویری را بر روی سرور خود آپلود کنید و شخص دیگری از همان لینک مستقیم تصویر شما استفاده کند، در واقع او از پهنای باند شما برای نمایش آن تصویر استفاده کرده است. این کار میتواند منجر به کاهش پهنای باند سرور و افزایش بار آن شود. برای جلوگیری از این نوع سوءاستفاده، میتوانید از قابلیت Hotlink Protection استفاده کنید که با افزودن دستورات مناسب در فایل .htaccess، مانع از استفاده سایتهای دیگر از فایلها و تصاویر شما شود.
دستور جلوگیری از Hotlinking با استفاده از فایل .htaccess
برای جلوگیری از Hotlinking، شما میتوانید از دستورات زیر در فایل .htaccess استفاده کنید. این دستورات به وبسرور میگویند که فقط سایتهای مجاز قادر به دسترسی به فایلها و تصاویر شما باشند و سایتهای دیگر اجازه دسترسی نداشته باشند.
فعال کردن Mod_rewrite
RewriteEngine on
جلوگیری از درخواستهای بدون Referer
RewriteCond %{HTTP_REFERER} !^$
اجازه دسترسی فقط به دامنه شما
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]
محدود کردن دسترسی به تصاویر و فایلهای CSS از سایتهای دیگر
RewriteRule \.(gif|jpg|css)$ - [F]
توضیحات کد:
-
RewriteEngine on: این دستور باعث فعال شدن قابلیت mod_rewrite میشود که برای انجام بازنویسی آدرسها و جلوگیری از Hotlinking ضروری است.
-
RewriteCond %{HTTP_REFERER} !^$: این شرط بررسی میکند که درخواستها از سایتهای خارجی باشد. اگر درخواست بدون Referer (یعنی از سایتهای دیگر) باشد، ادامه مییابد.
-
RewriteCond %{HTTP_REFERER} !^http://(www.)?yourdomain.com/.*$ [NC]: این شرط میگوید که تنها درخواستهایی که از دامنه شما آمدهاند، مجاز هستند. در اینجا، باید نام دامنه خود را به جای yourdomain.com وارد کنید. این دستور به سرور میگوید که درخواستهایی که از دامنه شما آمدهاند را اجازه دهد و سایر درخواستها را مسدود کند.
-
RewriteRule .(gif|jpg|css)$ - [F]: این دستور به وبسرور میگوید که در صورت درخواست فایلهایی با پسوند .gif، .jpg، یا .css از سایتهای دیگر، درخواستها را رد کرده و با کد خطای 403 (دسترسی ممنوع) پاسخ دهد. شما میتوانید پسوندهای دیگری مانند .png، .mp4 یا هر نوع فایل دیگری که میخواهید محافظت کنید، به این دستور اضافه کنید.
نحوه کش کردن تصاویر و فایل ها توسط فایل htaccess
مسدود کردن حملات XSS با استفاده از فایل .htaccess
حملات XSS (Cross-Site Scripting) یکی از انواع رایج و خطرناک حملات وب است که به مهاجمین این امکان را میدهد تا کدهای مخرب را در صفحات وب وارد کنند. این کدها معمولاً در پارامترهای URL یا فرمها قرار میگیرند و میتوانند اطلاعات کاربران را به سرقت ببرند یا حتی اقدام به انجام عملیات مخرب دیگری کنند. بنابراین، مسدود کردن این نوع حملات از اهمیت بالایی برخوردار است. یکی از روشهای محافظت در برابر حملات XSS استفاده از فایل .htaccess است. در این فایل میتوان قوانینی را برای شناسایی و مسدود کردن درخواستهای مشکوک اضافه کرد که میتواند از بسیاری از حملات XSS جلوگیری کند.
دستور مسدود کردن حملات XSS در فایل .htaccess
با استفاده از دستورات زیر در فایل .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]
توضیحات کد:
-
RewriteCond %{QUERY_STRING} (|%3E) [NC,OR]:
-
این دستور بررسی میکند که آیا در پارامترهای QUERY_STRING (که معمولاً در URL استفاده میشود) کدی شامل %3E (که نمایانگر کد URL-encoded برای علامت بزرگتر ">) وجود دارد یا خیر. این علامت معمولاً برای پایان تگهای HTML یا JavaScript استفاده میشود و میتواند در حملات XSS کاربرد داشته باشد.
-
[NC] به معنای No Case است که حساسیت به حروف بزرگ و کوچک را نادیده میگیرد و [OR] برای اعمال شرط بعدی بهعنوان بخش از یک گروه از شرایط استفاده میشود.
-
-
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]:
-
این دستور بررسی میکند که آیا پارامترهای QUERY_STRING شامل کلمات حساس مانند GLOBALS هستند. GLOBALS یکی از متغیرهای PHP است که میتواند توسط مهاجمین برای دستکاری و تزریق کدهای مخرب استفاده شود.
-
این دستور بهطور خاص از تزریق کد به این متغیر جلوگیری میکند که میتواند هدف حملات XSS و دیگر حملات مربوط به اجرای کد باشد.
-
-
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}):
-
این شرط بهدنبال هرگونه استفاده از پارامتر _REQUEST است که یکی از روشهای معمول برای دستیابی به دادههای ورودی از کاربران است. دسترسی به این نوع دادهها میتواند
-
حفاظت از فایل .htaccess
فایل .htaccess یکی از مهمترین فایلها برای پیکربندی و تنظیمات سرور در وبسایت است. این فایل میتواند تنظیمات امنیتی، ریدایرکتها، مدیریت دسترسیها و موارد دیگر را کنترل کند. به همین دلیل، محافظت از خود این فایل در برابر دسترسیهای غیرمجاز بسیار ضروری است.
اگر افراد غیرمجاز بتوانند به این فایل دسترسی پیدا کنند، ممکن است تنظیمات مهم سایت شما تغییر کند و یا حتی به اطلاعات حساس دسترسی پیدا کنند. برای جلوگیری از این نوع تهدیدات، میتوانید از دستورات امنیتی در خود فایل .htaccess استفاده کنید تا از دسترسی غیرمجاز به آن جلوگیری نمایید.
دستور محافظت از فایل .htaccess
برای محافظت از فایل .htaccess و جلوگیری از دسترسی غیرمجاز به آن، کد زیر را در فایل .htaccess خود وارد کنید:
<files ".htaccess">
order allow,deny
deny from all
</files>
توضیحات کد:
-
<files ".htaccess">: این دستور به سرور میگوید که فقط فایل .htaccess را هدف قرار دهد. در واقع، با استفاده از این دستور شما قوانین خاصی را فقط برای فایل .htaccess اعمال میکنید.
-
order allow,deny: این دستور ترتیب دستورات allow (اجازه) و deny (ممانعت) را مشخص میکند. ابتدا درخواستها برای دسترسی به این فایل بررسی میشوند تا به صورت پیشفرض اجازه داده نشود.
-
deny from all: این دستور به سرور میگوید که دسترسی به فایل .htaccess را برای تمامی درخواستها مسدود کند. به عبارت دیگر، هیچ کس نمیتواند به این فایل از طریق مرورگر دسترسی پیدا کند.
نتیجه گیری
در نتیجه، فایل .htaccess ابزاری بسیار قدرتمند برای مدیریت و تنظیمات وبسرور است که به شما این امکان را میدهد تا بسیاری از تنظیمات حیاتی سایت خود را بدون نیاز به تغییر در کدهای اصلی انجام دهید. از افزایش امنیت سایت و محافظت از فایلهای حساس گرفته تا بهینهسازی سرعت بارگذاری و جلوگیری از حملات مختلف، این فایل میتواند نقش مهمی در عملکرد وبسایت شما ایفا کند. با اعمال دستورات مختلف در .htaccess مانند مسدود کردن دسترسیهای غیرمجاز، محدود کردن حجم آپلود، تنظیم کش مرورگر و محافظت از فایلها، میتوانید وبسایت خود را در برابر تهدیدات خارجی ایمن کنید و تجربه کاربری بهتری برای بازدیدکنندگان فراهم آورید.
سوالات متداول
فایل .htaccess چیست و چه کاربردهایی دارد؟
فایل .htaccess یک فایل پیکربندی است که به شما اجازه میدهد تا تنظیمات مختلف وبسرور را تغییر دهید و قوانینی برای عملکرد وبسایت خود تعیین کنید. این فایل معمولاً در دایرکتوری اصلی سایت (public_html) قرار دارد و میتواند تنظیمات امنیتی، کش مرورگر، محدودیت دسترسی، بازنویسی URL و بسیاری موارد دیگر را کنترل کند.
چرا باید فایل .htaccess را محافظت کنم؟
چون فایل .htaccess دسترسی به تنظیمات حساس سرور و سایت شما را فراهم میکند، محافظت از آن در برابر دسترسیهای غیرمجاز و حملات احتمالی بسیار مهم است. با محافظت از این فایل، از تغییرات غیرمجاز در تنظیمات سایت خود جلوگیری کرده و امنیت سایت را افزایش میدهید.
آیا استفاده از .htaccess برای بهبود سرعت سایت موثر است؟
بله، فایل .htaccess میتواند به شما کمک کند تا سرعت سایت خود را افزایش دهید. با استفاده از تنظیمات کش، فشردهسازی فایلها و محدود کردن دسترسیهای غیرضروری، میتوانید به طور چشمگیری سرعت بارگذاری صفحات و عملکرد کلی سایت خود را بهبود بخشید.

null