.htaccess چیست؟

htaccess چیست؟

اگر شما یک وبمستر باشید به احتمال زیاد با فایل htaccess مواجه شده اید، شاید فایل htaccess یکی از ترسناکترین فایل ها در هسته وب سایت شما باشد، چرا ترسناک؟ چون اکثر وب مستران اطلاعاتی در خصوص این فایل و نحوه کار با آن را ندارند. به همین دلیل قصد داریم در این مقاله به صورت کامل شما رو این فایل آشنا کنیم، در این مقاله شما با کاربرد htaccess و همچنین نحوه اعمال تغییرات در این فایل آشنا می شوید.

فایل htaccess که در واقع شما آن را به این شکل .htaccess در هاست خود مشاهده می کنید یک فایل بسیار قدرتمند بوده که قادر به اعمال تغییرات بسیار گسترده ای در سایت شما است، برای مثال شما از طریق این فایل می توانید تغییر مسیر ها (Redirects) را ایجاد کنید، در واقع تغییر مسیر یا ریدایرکت به وسیله فایل htaccess یکی از رایج ترین مواردی است که وبمستران از طریق این فایل انجام می دهند.

حتی بسیاری از کاربران فکر می کنند که این فایل فقط برای تغییر مسیر کاربرد داشته که به هیچ وجه اینگونه نیست، و تغییر مسیر ادرس ها یا ریدایرکت تنها یکی از قابلیت های htaccess است. پس تا پایان مقاله با ما همراه باشید تا به صورت کامل با ویژگی ها و کاربرد htaccess آشنا شوید.

htaccess چیست؟

همانطور که بالاتر نیز اشاره شد .htaccess یک فایل با قابلیت های زیاد در سایت شما بوده که وظیفه پیکربندی و کنترل سایت شما را دارد. در سرورهایی که Apache (یک نرم افزار وب سرور) استفاده می کنند، فایل .htaccess به شما این امکان را می دهد تا بدون نیاز به ویرایش فایل‌های پیکربندی سرور، تغییراتی در تنظیمات وب سایت خود ایجاد کنید.

.htaccess کجا قرار دارد؟

Apache یا نرم افزاری که وب سرور شما را تأمین می کند، به گونه ای پیکربندی شده است که همه پرونده های با نام .htaccess مخفی کند، شاید برای شما سوال باشد که چرا یک فایل باید مخفی باشد؟ دلیل کاملا واضح است زیرا این فایل دارای اطلاعات مهم و دسترسی به پیکربندی سرور بوده و می تواند برای به خطر انداختن سرور شما مورد استفاده قرار گیرد.

.htaccess چیست؟

البته که شما قادر به آشکارسازی این فایل از طریق مدیریت هاست خود هستید، این فایل معمولاً در پوشه public_html وب سایت شما قرار دارد و شما به دو روش به این فایل دسترسی خواهید داشت:

  1. از طریق ورود به اکانت مدیریت هاست
  2. از طریق نرم افزارهای FTP

در صورتی فایل htaccess مخفی باشد، برای مشاهده باید روی “Show Hidden Files” کلیک کنید.

استفاده از چندین فایل htaccess در سرور

با استفاده از چندین فایل .htaccess می توانید تنظیمات مختلفی را روی دایرکتوری های (پوشه های) مختلف سرور خود اعمال کنید. در اینجا چند نکته وجود دارد که باید بخاطر بسپارید:

  • به طور کلی بهتر است تعداد فایل های .htaccess در سرور خود را به حداقل برسانید زیرا تنظیمات زیاد باعث کاهش سرعت سرور شما می شود.
  • هنگامی که سرور شما یک فایل .htaccess را در یک فهرست مشاهده می کند، به دنبال فایل های .htaccess در تمام دایرکتوری های والد نیز می باشد، که این باعث افزایش استفاده از منابع سرور می شود.
  • فایل های htaccess در دایرکتوری والد دارای اولویت هستند.

موارد معمول استفاده از htaccess

.htaccess چیست؟

در موارد زیادی از این فایل استفاده می شود که متداول ترین نمونه ها عبارتند از:

  • تغییر مسیر یا ریدایرکت URL یا یک لینک ( Redirect )
  • اجبار استفاده از HTTPS به جای HTTP یا اجبار استفاده از WWW.
  • جلوگیری از هات لینک

فایل .htaccess ابزاری قدرتمند برای مدیریت سرور شما است، اما گاها ممکن است باعث بروز مشکل شود حتما قبل از ویرایش این فایل یک نسخه پشتیبان یا کپی شده را از این فایل در اختیار داشته باشید همچنین شما باید به ایجاد تغییرات در سرور خود آشنا باشید.

آموزش استفاده از htaccess

طبق معمول به مانند تمامی فایل ها، ابتدا باید وارد مدیریت فایل شده و روی فایل کلیک کرده و گزینه ویرایش را انتخاب کنید. همچنین در صورتی که این فایل وجود نداشت می توانید آن را بسازید. اما در صورت وجود فایل و در صورتی که شما از وردپرس استفاده کنید احتمالا با محتوایی مشابه با کد زیر مواجه شوید:

# BEGIN WordPress
# دستورالعمل‌های (خطوط) بین "BEGIN WordPress" و "END 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

اگر از وردپرس استفاده می کنید کدهای خود را قبل از # BEGIN WordPress اضافه کنید. برای مثال:

# شروع کدهای سفارشی
# پایان کدهای سفارشی

# BEGIN WordPress
# دستورالعمل‌های (خطوط) بین "BEGIN WordPress" و "END 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

اگر با وردپرس آشنایی ندارید به شما پیشنهاد می کنیم حتما مقاله آشنایی با وردپرس، بهترین CMS رایگان را مطالعه نمایید. اما برگردیم به ویرایش فایل htaccess در اولین قدم برای ویرایش فایل شما باید بازنویسی اساسی را فعال کنید پس فایل را باز کرد و کد زیر را به آن اضافه کنید:

قبل از ویرایش فایل حتما یک نسخه پشتیبان از فایل ایجاد کنید. (از فایل یک کپی بگیرید و نام آن را به چیز دیگری تغییر دهید)

# enable basic rewriting
RewriteEngine on

در صورتی که فایل مذکور وجود نداشت می توانید به صورت دستی آن را ایجاد کنید، کافیست روی ایجاد فایل جدید کلیک کنید و نام فایل را برابر با .htaccess قرار دهید استفاده از . در ابتدای نام الزامیست.

اما رایج ترین موراد استفاده از این فایل:

بازنویسی یا تغییر مسیر یا redirect آدرس سایت یا صفحات

گاها ممکن است شما آدرس سایت خود و یا یک صفحه را تغییر داده باشید برای مثال سایت از Domain1.com به Domain2.com منتقل کرده باشید، در اینجا می توانید با استفاده از فایل htaccess تمامی ادرس های قبلی را به آدرس جدید ریدایرکت کنید.

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTP_HOST} !^domain1\.com 
RewriteRule (.*) http://domain2.com/$1 [R=301,L]

در کد بالا آدرس سایت قدیم به جدید بازنویسی می شود. چرا از کلمه بازنویسی استفاده کردیم ؟ چود در حقیقت بازنویسی با ریدایرکت متفاوت است. البته که این باز نویسی کاملا مشابه ریدایرکت است اما تفاوت اینجاست، برای مثال شما یک نوشته را با پاک‌کن پاک کرده و مجدد بنویسید این به معنی همان بازنویسی است در حالتی که اگر برای مثال از یک علامت برای نشان دادن مسیر جدید استفاده کرده باشید از ریدایرکت تبعیت کرده اید.

حال یکی دیگر از متداول ترین تغییراتی که توسط .htaccess توسط کاربران انجام می شود، در اکثر اوقات کاربران سعی می کنند که سایت خود را با www یا با https به کاربران خود نمایش دهند، در این حال به صورت زیر عمل می کنیم:

اجبار سایت برای باز شدن با www
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
اجبار سایت برای باز شدن بدون www
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
اجبار سایت برای باز شدن با https
#force SSL on entire site
RewriteEngine On 
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://domain.com/$1 [R=301,L]
.htaccess چیست؟

اگر سایت شما دارای مطالب پویا و مفید باشد، احتمالا با مشکل Hotlink مواجه خواهید شد. وقتی که شما مطالب اختصاصی منتشر می کنید وبسایت های دیگر را مجاب می کنید تا مطالب شما را در سایت خود منتشر کرده و احتمالا به سایت شما لینک دهند. تا به اینجا همه چیز خوب پیش رفته و این موضوع حتی باعث افزایش رتبه سئو شما نیز خواهد شد.

اما بسیاری از این سایت ها تمامی محتویات مقاله شما را در سایت خود کپی می کنند که به معنی استفاده از تصاویر شما با استفاده از آدرس سایت شما در یک سایت دیگر است. این موضوع منجر به افزایش مصرف منابع سایت شما، بدون اینکه بازدید کننده ای داشته باشید خواهد شد زیرا تصاویر از سایت شما بارگیری می شوند که به این فرایند Hotlink گفته می شود.

خوشبختانه با استفاده از htaccess می توانید بروز این امر جلوگیری کنید، جلوگیری از hotlink یکی از فاکتورهای مهم در بهینه سازی سایت است. در اینجا نحوه جلوگیری از hotlink در سایت شما را نشان داده ایم:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)domain.com/.*$ [NC]
RewriteRule \.

در این آموزش سعی کردیم تا شما را با فایل htaccess و برخی از کاربردهای آن آشنا کنیم در صورتی که نیاز به اطلاعات بیشتری در خصوص htacces دارید می توانید به تگ htaccess# مراجعه نمایید.