فایل htaccess این امکان را برایتان فراهم میکند تا عملکرد سایت و نحوه دسترسی به آن را کنترل کنید. این فایلِ بدون پسوند، معمولاً برای مدیریت تنظیمات امنیتی، اعلانهای HTTP، تغییرات در URL و... مورداستفاده قرار میگیرد. پس اگر شما هم قصد آشنایی بیشتر با کاربرد فایل htaccess را دارید تا پایان این بخش از مجله وب 24 همراه ما باشید تا اطلاع مفیدی دراینباره کسب کنید.
فایل htaccess چیست؟
پیروِ توضیحاتی که در ابتدای مقاله خدمت شما عزیزان ارائه کردیم؛ باید بگوییم که فایل htaccess بهعنوان یک فایل مخفیِ پیکربندیشده در وبسرویس آپاچی برای مدیریت دسترسی و تنظیمات سرور مورداستفاده قرار میگیرد. شما میتوانید این فایل را بهصورت متنی ویرایش کنید و با تعریف قوانین و تنظیمات مختلف در آن (مانند بهینهکردن و فشردهسازی فایلها، تنظیمات کش، سفارشیسازی، افزایش سرعت، تغییر دسترسی IP های خاص و...)، تأثیر مستقیمی بر عملکرد وبسایت خود بگذارید.
فایل htaccess کجا قرار گرفته است؟
حال که متوجه شدید فایل htaccess چیست، شاید این سؤال برایتان پیش بیاید که این فایل کجا قرار دارد و چطور میتوان به آن دسترسی داشت؟ در پاسخ به این سوال باید بگوییم که این فایل در Document Root یا همان دایرکتوری اصلی وبسایت قرار میگیرد. البته ناگفته نماند که اگر از سیستم مدیریت محتوای WordPress یا Joomla استفاده کنید، ممکن است htaccess زیر دایرکتوریهای مربوط به این سیستم نیز قرار گرفته باشید.
نقطه در ابتدای فایل htaccess چیست؟
نقطه در ابتدای نام فایل htaccess (یعنی .htaccess) بیانگر این است که فایل مربوطه یک فایل پنهان است. این نامِ پنهان گاهی باعث دیدهنشدن فایل در لیست مشاهدهپذیر برخی از وب سرورها و سیستمهای عامل میشود. در چنین حالتی فقط میتوان از طریق دسترسی مستقیم یا دستورات خاص، آن را مشاهده و ویرایش کرد.
برای مثال شما میتوانید با انجام تغییرات لازم در بخش FTP Client یا File Manager قسمت view» فعالسازی گزینه Show hidden file) این فایل را مشاهده کنید. همچنین توجه داشته باشید که هدف از پنهان بودن این فایل، حفاظت از تنظیمات امنیتی مختلف وبسایت است.
ضروری ترین کدهای فایل htaccess
پس از آشنایی با مفهوم فایل htaccess، حالا نوبت آن است که مروری بر انواع کدهای پرکاربرد آن داشته باشیم. شما میتوانید ضروریترین کدهای این فایل را در جدول زیر مشاهده کنید:
کاربرد |
کد |
جلوگیری از ارسال کامنت اسپم |
RewriteEngine On |
فعال کردن قابلیت Gzip |
# BEGIN Compress text files <ifModule mod_deflate.c> <filesMatch "\.(css|js|x?html?|php|woff|ttf|png|jpg|gif)$"> SetOutputFilter DEFLATE </filesMatch> </ifModule> # END Compress text files |
امنیت محتوای فولدر wp-includes |
# Block the include-only files. RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] |
محافظت از فایل .htaccess |
<files ".htaccess"> |
بن کردن اسپمرها |
<Limit GET POST> |
جلوگیری از سرقت پهنای باند، فایل و عکسها |
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?site.com/ .*$ [NC] RewriteRule \.(gif|jpg|swf|flv|png)$ /feed/ [R=302,L] |
حذف کلمه category از آدرس سایت |
RewriteRule ^category/(.+)$ http://www.yourblog.com/$1 [R=301,L]
|
جلوگیری از سرقت فایل و فولدرهای داخل هاست |
Options All -Indexes |
رفع اختلال تعداد آیتمهای فهرست وردپرس |
<IfModule mod_php.c> php_value suhosin.post.max_vars 7000 php_value suhosin.request.max_vars 7000 </IfModule> |
تغییر عنوان و پسوند فایل پیشفرض index |
DirectoryIndex file.php file.html |
امنیت wp-config.php |
<files wp-config.php> order allow,deny deny from all </files> |
ریدایرکت |
Redirect /Dirold/old.html http://site.com/DirNew/new.html |
نمایش/ عدم نمایش فایلهای قابلاجرا |
Options +FollowSymlinks RewriteEngine On rewritecond %{REQUEST_FILENAME} !^(.+).css$ rewritecond %{REQUEST_FILENAME} !^(.+).js$ rewritecond %{REQUEST_FILENAME} !file.php$ RewriteRule ^(.+)$ /deny/ [nc] |
حداکثر زمان دریافت اطلاعات POST و GET |
php_value max_input_time 250 |
محدودکردن آپلود فایل |
php_value upload_max_filesize 20M |
تعیینکردن صفحات سفارشی برای صفحات خطا |
ErrorDocument 401 /error/401.php |
مخفیکردن/شناساندن فرمتها |
AddType application/x-httpd-php .asp .jsp |
ورود به سایت با www یا بدون www |
RewriteEngine On |
نمایش پیغام requast time (در بازه زمانی مشخص) |
php_value max_execution_time 200 |
ایجاد محدودیت در حجم پست ارسالی |
php_value post_max_size 2M |
معرفی زبان پیشفرض |
# pass the default character set AddDefaultCharset utf-8 |
کاربرد فایل htaccess
در این بخش مروری بر کاربردهای مختلف فایل htaccess خواهیم داشت تا بهخوبی بدانید که برای انجام چهکارهایی در وبسایت خود میتوانید از طریق این فایل اقدام کنید.
- مدیریت دسترسی (Access Control): شما میتوانید به کمک این فایل سطح دسترسی به فایلها و پوشههای مختلف را براساس IP، رمزگذاری و... تنظیم کنید
- نامگذاری فایلها (File Naming): برای شناساندن بهترِ فایلهای خود به موتور جستجو میتوانید نام آنها را سفارشی کنید
- تغییر تنظیمات اعتبارسنجی (Authentication Settings): از طریق فایل اچتیاَکسس میتوان سطح دسترسی سیستمهای اعتبارسنج (مانند Basic Auth یا Digest Auth) را به بخشهای خاصی از وبسایت محدود کرد
- ریدایرکت (Redirects): یکی دیگر از کاربردهای فایل .htaccess این است که میتوانید از قابلیت ریدایرکت، برای انتقال کاربران از یک آدرس به آدرس دیگر استفاده کنید
- کنترل کشها (Caching Control): برای بهبود عملکرد وبسایت خود و افزایش سرعت آن میتوانید تنظیمات کش را بهینهسازی کنید
- تنظیم زبان (Language settings): از این قابلیتِ فایل مذکور میتوان برای تعیین زبان پیشفرض یا ارسال سرآیندهای زبان HTTP استفاده کرد
- کنترل رباتهای جستجو (Search Engine Bot Control): علاوه بر نکاتی که تا این قسمت ارائه کردیم، شما میتوانید تنظیماتی در این فایل انجام دهید که به رباتهای جستجو، اجازه دسترسی به بخشهای خاصی از وبسایت را بدهید یا از آن جلوگیری کنید
- مسیردهی (URL Rewriting): از طریق فایل .htaccess میتوانید آدرسهای URL را با استفاده از قواعد خاصی تغییر دهید
- افزایش سطح امنیت (Security-related Settings): یکی از روشهای افزایش امنیت سایت از طریق فایل مذکور به این صورت است که میتوانید تنظیمات امنیتی (مانند مسدودکردن دسترسی به فایلهای حساس یا محدودیت نحوه ارسال درخواستها) را تعریف کنید
- تنظیمات برای پیاچپی (PHP Settings): تغییر نسخه PHP، فعالکردن و غیرفعالکردن ماژولهای خاص و... از جمله تنظیمات مربوط به PHP هستند که میتوان از طریق این فایل انجام داد
- مسدودکردن /اجرای تصاویر (Blocking or Executing Images): با کمک این فایل میتوانید قوانین خاصی را برای ممنوعیت اجرای تصاویر از آدرسهای خاص یا اجرای مستقیم آنها تعریف کنید
- تنظیم SSL/TLS: برای ایجاد ارتباط امن با کاربران، میتوانید تنظیمات مربوط به SSL/TLS (مانند Redirect به HTTPS) را مطابق با استانداردهای لازم اعمال کنید
- فشردهسازی فایلها (File Compression): برای بهبود سرعت بارگذاری صفحات وبسایت خود میتوانید با استفاده از فایل .htaccess، برخی از فایلها را مانند gzip و deflate فشردهسازی کنید
نحوه ساخت فایل htaccess
برای ساخت فایل htaccess در بخش cpanel، ابتدا باید روی گزینه file manager کلیک کنید. پس از واردشدن به مسیر public_html، روی گزینه new ضربه بزنید و htaccess. را انتخاب کنید. سپس روی فایل مربوطه کلیک راست کنید و پس از واردکردن کد زیر، روی گزینه ذخیرهسازی فایل ضربه بزنید تا تغییرات ثبت شوند.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
جمعبندی
در این مطلب به بررسی ماهیت فایل htaccess پرداختیم و متوجه شدیم که چطور میتوان از آن برای کنترل و مدیریت تنظیمات وبسایت استفاده کرد. پس حالا دیگر بهخوبی میدانید که برای حذف کلمه category از آدرس سایت، ورود به سایت با www یا بدون آن و... چه کدهایی را باید در این فایل وارد کنید. امیدواریم از وقتی که در وب ۲۴ سپری کردید، نهایت لذت را برده باشید و به پاسخ سؤالات خود پیرامون موضوع آموزشی این مبحث برسید. لطفاً شما هم نقطهنظرات و پیشنهادهای خود در این باره با ما و سایر کاربران به اشتراک بگذارید. از اینکه تا پایان همراه ما بودید، صمیمانه سپاسگزاریم.