آموزشهاست

فایل htaccess چیست؟ معرفی دستورات مفید در htaccess.

What is .htaccess? the Most Important commands in .htaccess

htaccess. (خلاصه شده “hypertext access”) یک فایل بدون نام و تنها با پسوند در پنل هاست است. این فایل توانایی کنترل بسیاری از بخش‌های وب‌سرور “آپاچی و لایت اسپید” را دارد. همچنین این فایل اگر در هر دایرکتوری‌ای قرار داشته باشد، می‌تواند بخش‌های مختلف مربوط به آن دایرکتوری را از طریق آن کنترل کرد. در این بخش قصد داریم دستورات مفید در htaccess را به شما آموزش دهیم. با ما همراه باشید.

htaccess. چیست؟

htaccess یک فایل مخصوص پیکربندی است که نحوه پاسخگویی وب‌سرور به درخواست‌های مختلف را کنترل می‌کند. این فایل توسط برخی وب‌سرورها از جمله Apache و LiteSpeed Enterprise پشتیبانی می‌شود. توجه داشته باشید که فایل داخل وب‌سرور Nginx پشتیبانی نمی‌شود. بنابراین لازم است تا قبل از ایجاد این فایل، از وب‌سرور هاست خود مطمئن شوید.

توجه داشته باشید که این فایل، داخل تمامی سرویس‌های نت افراز بجز هاست دانلود (که وب‌سرور آن انجینکس است) قابل ایجاد و استفاده است.

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

معمولا پس از نصب CMSهایی مثل WordPress، فایل htaccess. در شاخه public_html یا www هاست شما قرار می‌گیرد. در صورت عدم وجود این فایل می‌توانید آن را بسازید. همچنین در دایرکتوری‌های دیگر وب‌سایت نیز امکان ساخت htaccess وجود دارد.

البته توجه داشته باشید که اگر پنل مدیریت هاست شما Cpanel باشد، این فایل (و البته تمامی فایل‌هایی که با نقطه شروع می‌شوند)، به صورت پیشفرض مخفی است. بنابراین نه می‌توانید آن را مشاهده کنید و نه می‌توانید یک فایل جدید ایجاد کنید. برای مشاهده این فایل داخل Cpanel، لازم است تا با اعمال تنظیماتی، امکان مشاهده فایل‌های مخفی را فراهم کنید.

شما می‌توانید پس از ورود به بخش “مدیریت فایل” در سی پنل، از بخش “settings”، گزینه‌ی “Show Hidden Files (dotfiles)” را انتخاب و سپس بر روی “Save” کلیک کنید.

 

مشاهده فایل های مخفی نقطه دار در سی پنل

 

با ذخیره تغییرات، فایل .htaccess و تمامی فایل‌هایی که با نقطه شروع می‌شوند به شما نمایش داده خواهد شد.

چگونه یک فایل htaccess. بسازم؟

پس از ورود به دایرکت ادمین، از بخش مدیریت فایل، وارد شاخه‌ی public_html شوید. سپس شاخه‌ای را که می‌خواهید در آن فایل htaccess. را ایجاد کنید انتخاب کنید. توجه داشته باشید که متداول‌ترین شاخه‌ای که برای ساخت فایل htaccess.، ایجاد می‌شود، شاخه public_html است.

دایرکتوری مورد نظر را انتخاب کنید نت‌افراز

سپس راست کلیک کرده و بر روی New File کلیک کنید.

یک فایل جدید ایجاد کنید نت افراز

سپس نام فایل را htaccess. بنویسید و بر روی Ok کلیک کنید.

ساخت یک فایل htaccess. نت افراز

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

کاربردها و دستورات مفید htaccess.

در این قسمت به برخی دستورات مفید htaccess. اشاره می‌کنیم.

نمایش لیست فایل‌های موجود در یک دایرکتوری

قبل از هرچیز، توجه داشته باشید که این بخش برای هاست دانلود (چون با وب‌سرور انجینکس است) قابل اجرا نیست!

همچنین، در برخی موارد ممکن است که این دستور از طرف مدیرسرور شرکت ارائه دهنده خدمات هاستینگ غیرفعال باشد که البته در نت افراز هیچ مسئله‌ای در استفاده از این کد وجود ندارد.

در برخی وب‌سایت‌ها، برای سهولت کاربران برای دانلود، تمامی فایل‌ها را در یک پوشه قرار داده و آدرس آن بخش را به کاربران می‌دهند. همانند تصویر زیر:

نمایش فایل های موجود در یک دایرکتوری نت افراز

در این مثال ما یک دایرکتوری جدید به نام Download در public_html ایجاد کردیم و در آن یک فایل به نام htaccess. ایجاد کردیم.

برای مشاهده لیست فایل‌های موجود در یک دایرکتوری، کد زیر را درون فایل htaccess. فایل مورد نظر قرار دهید. سپس بر روی Save کلیک کنید.

Options +Indexes

توجه داشته باشید که فاصله بین حروف را به درستی رعایت کنید.

لیست سیاه و لیست سفید IP

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

کافیست کد زیر را در فایل htaccess. وارد کنید.

order allow,deny 
deny from 111.22.3.4 
allow from all

در این مثال، ما از آی‌پی‌ 111.22.3.4 جلوگیری و بقیه آی‌پی‌ها را مجاز کردیم.

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

order deny,allow 
deny from all 
allow from 111.22.3.4

که در این دستور، تمامی آی‌پی‌ها بلاک و فقط آی‌پی 111.22.3.4 اجازه ورود به وب‌سایت را دارد. البته می‌توانید آی‌پی‌های دیگر را نیز با یک خط دستوری allow from اضافه کنید.

در صورتی که کد دستوری به درستی اعمال شده باشد، آی‌پی‌های غیرمجاز با پیغام زیر مواجه خواهند شد.

بلاک کردن آی پی در هاست نت افراز

ریدایرکت کردن لینک‌ها

ریدایرکت در اصل به معنای تغییر مسیر یک لینک به لینک دیگر است. برای مثال اگر لینک example.com به domain.com تغییر مسیر داده شده باشد، پس از وارد کردن exmaple.com وارد domain.com می‌شویم. البته از سمت وب‌سرور دو نوع ریدایرکت 301 و 302 صادر می‌شود.

تفاوت ریدایرکت 301 و 302 چیست؟

ریدایرکت 301 به معنای تغییر مسیر “دائمی” و تغییر مسیر 302 به معنای تغییر مسیر “موقت” است. اگر می‌خواهید یک لینک را تغییر مسیر بدهید و می‌خواهید برای سئوی آن مشکلی پیش نیاید، از ریدایرکت 301 استفاده کنید.

همچنین اگر بخشی از سایت خود را حذف کنید و این بخش توسط موتور جستجوگر گوگل شناخته شده باشد، این صفحه با ارور 404 مواجه خواهد شد. این ارور ممکن است باعث افت وضعیت SEO وب‌سایت شما شود. به همین دلیل بهتر است تا لینک صفحه مربوطه را به یک صفحه دیگر که مرتبط است ریدایرکت کنید.

دستور اصلی ریدایرکت 301

Redirect 301 /relative-url.html http://example.com/full-url.html

در این مثال، ما فایل relative-url.html/ از وب‌سایت خود را به لینک http://example.com/full-url.html تغییر مسیر داده‌ایم. البته توجه داشته باشید که لازم است فایل یا پوشه مربوطه در همان پوشه‌ای که htaccess است، وجود داشته باشد.

همچنین می‌توانیم این دستور را برای تغییر مسیر دایرکتوری نیز استفاده کنیم.

تمامی دستورات htaccess. برای همان دایرکتوری و دایرکتوری‌های داخلی اعمال می‌شود. برای مثال اگر دستوری در public_html وارد شود، آن دستور بر روی آن دایرکتوری و تمامی دایرکتوری‌های زیرمجموعه آن نیز اعمال می‌شود. اما اگر دستورات در دایرکتوری دیگری مانند Download وارد شود، دستورات فقط بر روی دایرکتوری Download و تمامی دایرکتوری‌های داخل آن اعمال می‌شود.

تغییر مسیر کل وب‌سایت به یک لینک دیگر

برای تغییر مسیر کل وب‌سایت خود به یک وب‌سایت دیگر از دستور زیر استفاده کنید.

Redirect 301 / http://newurl.com

البته در این بخش، کل اطلاعات موجود در شاخه‌ای که که در آن htaccess. ساخته شده است تغییر مسیر داده می‌شود.

فراخوانی وب‌سایت با www یا بدون www

گاهی اوقات ممکن است که وب‎سایت شما با www فراخوانی شده باشد، (مانند www.google.com) و شما تمایل داشته باشید که بدون www این وب‌سایت را فراخوانی کنید. (مانند google.com)

با یک دستور ساده داخل .htaccess به آسانی می‌توانید این کار را انجام دهید:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

و اگر وب‌سایت شما بدون www فراخوانی می‌شود و قصد دارید آن را با www فراخوانی کنید می‌توانید از دستور زیر استفاده کنید:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

البته توجه داشته باشید که اگر از DNS های کلادفلر استفاده می‌کنید، لازم است تا کش مربوط به آن پاک شده تا این تغییرات اعمال شود.

مواجهه با ارور Internal Server Error

در صورتیکه خطایی در دستورات ذخیره شده در htaccess. وجود داشته باشد، با فراخوانی آن بخش، با این پیغام مواجه خواهید شد. اما راه حل چیست؟

ارور 500 internal server error نت افراز

هر دفعه یک کد را اعمال کنید!

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

قبل از وارد کردن دستورات از هاست خود بک‌آپ بگیرید

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

آموزش بک‌آپ گیری از هاست

دلایل دیگر وجود این خطا:

البته مشاهده این خطا ممکن است دلایل دیگری از جمله:

  • وجود خطا و مشکل از سمت هاست
  • تنظیم نبودن صحیح سطوح دسترسی (Permissions) به فایل‌ها یا دایرکتوری‌های هاست
  • و…

نیز داشته باشد. اما اگر پس از ویرایش .htaccess به این خطا برخورد کردید، به احتمال بسیار زیاد مشکل از سمت دستور اشتباه بوده است.

کلام آخر…

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

همچنین این دستورات بر تمامی سرویس‌های نت‌افراز کاملا تست شده و قابلیت استفاده دارند. همچنین در صورت بروز هرگونه مشکل می‌توانید با پشتیبانی نت‌افراز در تماس باشید.

شاد و پیروز باشید.

4.2 5 رای ها
امتیازدهی به مقاله

نوشته های مشابه

اشتراک در
اطلاع از

4 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
یاری
10 ماه قبل

سلام، ممنون از مطلب خوبتون.
سوالی داشتم: آیا این فایل بر ساب فولدرها و ساب دامنه‌ها هم اثر می‌گذارد و چطور می‌توان این تاثیر را قطع کرد؟

علیرضا
5 ماه قبل

سلام برای ریدایرکت یه کلمه از کل آدرس چه کدی باید بنویسیم مثلا اگر بخواهیم /http://site.ir/jpg/photo را به /http://site.ir/photo ریدایرکت کنیم به چه صورت هست. ممنون میشم سوالم رو جواب بدید.

دکمه بازگشت به بالا