فایل htaccess چیست و چه قابلیت هایی دارد؟

فایل htaccess این امکان را برایتان فراهم می‌کند تا عملکرد سایت و نحوه دسترسی به آن را کنترل کنید. این فایلِ بدون پسوند، معمولاً برای مدیریت تنظیمات امنیتی، اعلان‌های HTTP، تغییرات در URL و... مورداستفاده قرار می‌گیرد. پس اگر شما هم قصد آشنایی بیشتر با کاربرد فایل htaccess را دارید تا پایان این بخش از مجله وب 24 همراه ما باشید تا اطلاع مفیدی دراین‌باره کسب کنید.

فایل htaccess

فایل 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
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

فعال کردن قابلیت 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">
order allow,deny
deny from all
</files>

بن کردن اسپمرها

<Limit GET POST>
order allow,deny
deny from 200.49.176.139
allow from all
</Limit>

جلوگیری از سرقت پهنای باند، فایل‌ و عکس‌ها

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
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php

مخفی‌کردن/شناساندن فرمت‌ها

AddType application/x-httpd-php .asp .jsp

ورود به سایت با www یا بدون www

RewriteEngine On
RewriteCond %{HTTP_HOST} !^yoursite\.com$ [NC]
RewriteRule ^(.*)$ http://yoursite.com/$1 [R=301,L]

نمایش پیغام 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

جمع‌بندی

در این مطلب به بررسی ماهیت فایل htaccess پرداختیم و متوجه شدیم که چطور می‌توان از آن برای کنترل و مدیریت تنظیمات وب‌سایت استفاده کرد. پس حالا دیگر به‌خوبی می‌دانید که برای حذف کلمه category از آدرس سایت، ورود به سایت با www یا بدون آن و... چه کدهایی را باید در این فایل وارد کنید. امیدواریم از وقتی که در وب ۲۴ سپری کردید، نهایت لذت را برده باشید و به پاسخ سؤالات خود پیرامون موضوع آموزشی این مبحث برسید. لطفاً شما هم نقطه‌نظرات و پیشنهادهای خود در این باره با ما و سایر کاربران به اشتراک بگذارید. از اینکه تا پایان همراه ما بودید، صمیمانه سپاسگزاریم.

همچنین بخوانید
فیلتر rejex چیست و در چه مواردی می توان از آن استفاده کرد؟ لیست دستورات rejex برای سرچ کنسول را در این مطلب از وب 24 بخوانید.
در این مطلب از سایت وب 24 با پسوند دامنه و انواع آن آشنا شوید.
چه افزونه ای برای کش وردپرس نصب کنیم؟ لیست بهترین پلاگین های کش برای وردپرس را در این مطلب از سایت وب 24 معرفی شده است.
لیزی لودینگ چیست و اهمیت آن در سئو سایت چیست؟ با وب 24 همراه باشید تا با لیزی لود و نحوه پیاده سازی آن در سایت آشنا شوید.
دیدگاه خود را با ما در میان بگذارید
امتیاز:
captcha