مقالات تخصصی

فایل .htaccess چیست؟ چه کاربردهایی دارد؟

فایل .htaccess چیست؟ چه کاربردهایی دارد؟

فایل .htaccess چیست؟

فایل htaccess چیست؟ فایل .htaccess یک فایل برای پیکربندی است که عموماً در سرورهای وب مبتنی بر Apache استفاده می گردد. این فایل به مدیران یک وب سایت اجازه می دهد تا تنظیمات مختلف را بدون نیاز به دسترسی به فایل اصلی پیکربندی سرور در سطح دایرکتوری اعمال نمایند. از جمله این تنظیمات می توان به مدیریت مسیرهای URL، تنظیمات امنیتی، جلوگیر از دسترسی به برخی فایل های ویژه و خاص، تنظیمات کش و Redirectها اشاره داشت. فایل .htaccess به دلیل انعطاف پذیری و ساده بودن در استفاده، یک ابزار قدرتمند در طراحی وب سایت و برای مدیریت وب سایت ها به شمار می رود.

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

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

فایل .htaccess چگونه ساخته می شود؟

راه ایجاد فایل htaccess چیست؟ برای ایجاد یک فایل .htaccess، کافی است یک فایل متنی ساده با نام .htaccess ایجاد کنید. این فایل باید در دایرکتوری اصلی وب سایت یا در هر دایرکتوری دیگری که می خواهید تنظیمات ویژه ای را اعمال کنید قرار بگیرد. می توانید از هر ویرایشگر متنی مانند Notepad در ویندوز یا TextEdit در مک برای ایجاد و ویرایش این فایل استفاده نمایید.

محتوای فایل .htaccess می تواند شامل دستورات مختلفی باشد که رفتار سرور را تغییر می دهند. به عنوان مثال، می توانید از این فایل برای مدیریت مسیرهای URL، تنظیم مجوزهای دسترسی، فعال کردن قابلیت های خاص مانند mod_rewrite برای تغییر مسیرها و یا حتی برای افزایش امنیت وب سایت با محدود کردن دسترسی به برخی فایل ها یا دایرکتوری ها استفاده کنید. 

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

فایل htaccess چگونه ساخته می شود

کاربردهای فایل .htaccess چیست؟

در ادامه این مطلب به این پرسش که مهم ترین کاربردهای یک فایل .htaccess چیست پاسخ داده خواهد شد و با برخی از مهم ترین دستورات کاربردی در آن آشنا خواهیم شد.

1. مدیریت مسیرها و URLها (URL Rewriting)

در پاسخ به پرسخ یکی از پراستفاده ترین کاربردهای فایل “htaccess چیست” می بایست این طور گفت که یکی از رایج ترین کاربردهای فایل .htaccess بازنویسی URLها می باشد. این قابلیت به شما امکان می دهد تا URLهای طولانی و پیچیده را به شکل ساده تر و کاربرپسندتری نمایش دهید. برای مثال می توانید «example.com/product.php?id=123» را به «example.com/product/123» تغییر بدهید. این کار با استفاده از ماژول mod_rewrite انجام می گردد.

RewriteEngine On
RewriteRule ^product/([0-9]+)/?$ product.php?id=$1 [L]

2. تغییر صفحه خطا (Custom Error Pages)

با استفاده از .htaccess، می توانید صفحات سفارشی برای خطاهای رایج مانند 404 (صفحه پیدا نشد) یا 500 (خطای سرور) ایجاد کنید. این کار تجربه کاربری بهتری را برای بازدیدکنندگان فراهم می آورد.

ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

3. مسدودکردن دسترسی به فایل ها و دایرکتوری ها

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

<Files .htaccess>
Order Allow,Deny    
Deny from all    
</Files>

4. تغییر صفحه پیش فرض (Directory Index)

اگر کاربران به یک دایرکتوری دسترسی پیدا کنند، سرور به صورت پیش فرض فایل index.html یا index.php را نمایش می دهد؛ با استفاده از .htaccess، می توانید فایل پیش فرض را تغییر دهید.

DirectoryIndex home.html

5. فشرده سازی فایل ها (Gzip Compression)

فشرده سازی فایل ها می تواند سرعت بارگذاری سایت را بهبود ببخشد. با استفاده از .htaccess، می توانید فشرده سازی Gzip را برای فایل های CSS، JavaScript و HTML فعال نمایید.

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript    
</IfModule>

6. تغییر تنظیمات PHP

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

php_value memory_limit 256M
php_value max_execution_time 300

7. مسدودکردن IPها یا محدودکردن دسترسی

شما می توانید دسترسی به وب سایت خود را برای IPهای ویژه ای محدود یا مسدود نمایید. این کار می تواند برای جلوگیری از حملات یا دسترسی غیرمجاز مفید باشد.

Order Allow,Deny
Allow from all
Deny from 192.168.1.1

8. فعال کردن کش مرورگر (Browser Caching)

با فعال کردن کش مرورگر، می توانید مدت زمان ذخیره سازی فایل های استاتیک مانند تصاویر، CSS و JavaScript را در مرورگر کاربران افزایش بدهید. این کار موجب کاهش تعداد درخواست ها به سرور و بهبود سرعت بارگذاری وب سایت می شود.

<IfModule mod_expires.c>
    ExpiresActive On    
    ExpiresByType image/jpg “access plus 1 year”    
    ExpiresByType image/jpeg “access plus 1 year”
    ExpiresByType image/gif “access plus 1 year”
    ExpiresByType image/png “access plus 1 year”
    ExpiresByType text/css “access plus 1 month”
    ExpiresByType application/pdf “access plus 1 month”
    ExpiresByType text/x-javascript “access plus 1 month”
    ExpiresByType application/x-shockwave-flash “access plus 1 month”
    ExpiresByType image/x-icon “access plus 1 year”
    ExpiresDefault “access plus 2 days”
</IfModule>

9. تغییر مسیر (Redirects)

با استفاده از .htaccess، می توانید کاربران را از یک URL به URL دیگر هدایت کنید. این کار که عموماً برای یک سئو کار سایت مهم می باشد، برای تغییر مسیر صفحات قدیمی به صفحات جدید یا تغییر مسیر از HTTP به HTTPS مفید است.

Redirect 301 /old-page.html http://www.example.com/new-page.html

10. فعال کردن HTTPS

اگر وب سایت شما از گواهی SSL استفاده می کند، می توانید با استفاده از .htaccess، تمام ترافیک را به HTTPS هدایت کنید.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

11. محدودکردن دسترسی به فایل های خاص

شما می توانید دسترسی به فایل های خاصی را محدود کنید تا فقط از طریق IPهای خاصی قابل دسترسی باشند.

<Files “config.php”>
Order Allow,Deny    
Deny from all    
Allow from 192.168.1.1    
</Files>

12. فعال کردن CORS

اگر نیاز دارید که منابع وب سایت شما از دامنه های دیگر قابل دسترسی باشند، می توانید CORS یا همان Cross-Origin Resource Sharing را فعال کنید.

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin “*”
</IfModule>

13. غیرفعال کردن لیست دایرکتوری (Directory Listing)

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

Options -Indexes

14. تغییر نوع MIME

شما می توانید نوع MIME فایل ها را تغییر دهید تا مرورگرها بتوانند آن ها را به درستی تفسیر کنند.

AddType application/x-httpd-php .php

15. فعال کردن SSI

اگر می خواهید از SSI یا همان Server Side Includes استفاده کنید، می توانید آن را از طریق .htaccess فعال کنید.

Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

چگونه به فایل .htaccess دسترسی پیدا کنم؟

برای دسترسی به فایل .htaccess ابتدا باید به سرور وب خود متصل بشوید. این فایل معمولاً در دایرکتوری root وب سایت شما قرار دارد و ممکن است به صورت پیش فرض مخفی باشد. اگر از کنترل پنل مانند cPanel استفاده می کنید، می توانید از طریق File Manager به فایل دسترسی پیدا کنید. در صورتی که از دسترسی SSH برخوردار هستید، می توانید با استفاده از دستوراتی مانند cd به دایرکتوری مورد نظر بروید و سپس با دستور ls -a فایل های مخفی از جمله .htaccess را مشاهده نمایید. برای ویرایش فایل می توانید از ویرایشگرهای متن مانند nano یا vim استفاده کنید. 

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

چگونه به فایل htaccess دسترسی پیدا کنم

چرا نمی توانم فایل .htaccess را در cPanel پیدا کنم؟

اگر در cPanel نمی توانید این فایل را پیدا کنید، ممکن است به این چند دلیل باشد: 

  • اولاً، فایل ممکن است مخفی باشد، زیرا نام آن با نقطه شروع می شود و فایل های مخفی به طور پیش فرض در cPanel نمایش داده نمی شوند. برای مشاهده فایل های مخفی، باید گزینه «Show Hidden Files» (نمایش فایل های مخفی) را در بخش «File Manager» فعال کنید.
  • ثانیاً، ممکن است فایل .htaccess اصلاً وجود نداشته باشد. در این صورت می توانید یک فایل جدید با این نام ایجاد کنید.
  • همچنین، اطمینان حاصل کنید که در مسیر درست دایرکتوری جستجو می کنید، زیرا این فایل معمولاً در پوشه public_html یا زیرشاخه های آن قرار دارد.
چرا نمی توانم فایل htaccess را در cPanel پیدا کنم

جدول بررسی نکات مهم در استفاده از htaccess

نکتهراهنما
تست تغییراتقبل از اعمال تغییرات در .htaccess آن ها را در یک محیط تست بررسی کنید تا از عملکرد صحیح اطمینان حاصل کنید
امنیتدسترسی به فایل .htaccess را محدود کنید تا از سوء استفاده کاربران مخرب جلوگیری شود
تأثیر بر عملکرد سروراستفاده بیش از حد از .htaccess می تواند عملکرد سرور را کاهش دهد، زیرا سرور باید آن را در هر درخواست بررسی کند
اولویت تنظیماتتنظیمات موجود در .htaccess بر تنظیمات اصلی سرور اولویت دارند، بنابراین مراقب تداخل تنظیمات باشید
پشتیبان گیریقبل از هرگونه تغییر، از فایل .htaccess نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل بتوانید به حالت قبلی بازگردید
سینتکس صحیحمطمئن شوید که دستورات واردشده در .htaccess از سینتکس صحیح برخوردار باشند تا از خطاهای سرور جلوگیری شود
استفاده از کامنت هابرای بهبود خوانایی و مدیریت فایل، از کامنت ها (توضیحات) در .htaccess استفاده کنید
عدم استفاده غیرضروریدر صورت امکان، تنظیمات را در فایل پیکربندی اصلی سرور اعمال کنید تا از تأثیر منفی بر عملکرد سرور جلوگیری شود
بررسی مجوزهای فایلاطمینان حاصل کنید که مجوزهای فایل .htaccess به درستی تنظیم شده اند تا از دسترسی غیرمجاز جلوگیری شود
آگاهی از محدودیت هاشاید برخی از هاست ها استفاده از برخی دستورات .htaccess را محدود کنند، پس از محدودیت های هاست خود آگاه باشید