دانش محور دستورالعمل های ساده برای کار با سرویس Profitserver
اصلی دانش محور پیکربندی فایل htaccess

پیکربندی فایل htaccess


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

چرا htaccess مورد نیاز است

فایل htaccess به عنوان نوعی "کنترل از راه دور" برای توسعه دهندگان وب در سرورهای آپاچی عمل می کند. ابزارهای مناسبی برای تنظیم پارامترهای مختلف و مدیریت رفتار یک وب سایت ارائه می دهد. هنگامی که دسترسی مستقیم به فایل‌های پیکربندی اصلی سرور در دسترس نباشد (مثلاً مانند میزبانی مجازی، .htaccess به ابزاری مفید برای ایجاد تغییرات ضروری تبدیل می‌شود.

Htaccess اغلب در پوشه ریشه سایت شما یا در پوشه‌هایی که نیاز به پیکربندی خاصی دارند، قرار دارد. به عنوان مثال، اگر از وردپرس استفاده می‌کنید، پیکربندی را می‌توان از طریق افزونه Yoast SEO انجام داد که در مقاله پیکربندی robots.txt در مورد آن صحبت کردیم . در موارد دیگر، کافی است به پوشه مورد نیاز بروید و فایل .htaccess موجود را ویرایش کنید، یا اگر هنوز ایجاد نشده است، آن را ایجاد کنید.

پیکربندی فایل htaccess

301 تغییر مسیر htaccess

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

برای فعال کردن تغییر مسیرها، باید دستور مربوطه را در فایل htaccess فعال کنید:

RewriteEngine on

پس از آن، می توانید ساده ترین شکل تغییر مسیر را پیکربندی کنید:

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>

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

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>

اینها ساده‌ترین روش‌های ریدایرکت برای پیکربندی هستند. بیایید پیکربندی‌ای را در نظر بگیریم که از انواع پیشرفته‌تر ریدایرکت با ماژول mod_rewrite استفاده می‌کند :

<IfModule mod_rewrite.c>
RewriteEngine On
    
# Redirecting from one page to another
RewriteRule ^old-page.html$ http://www.example.com/new-page.html [R=301,L]

# Redirecting all traffic from one domain to another
RewriteCond %{HTTP_HOST} ^oldsite.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.com$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]
    
# Redirecting from www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

# Redirecting from HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

# Redirecting from one subdomain to another
RewriteCond %{HTTP_HOST} ^subdomain1.example.com$
RewriteRule ^(.*)$ http://subdomain2.example.com/$1 [R=301,L]
</IfModule>

تغییر مسیر 302 .htaccess، که نشان دهنده جابجایی موقت است، بسیار کمتر دیده می شود. در اینجا نمونه ای از چنین تنظیماتی آورده شده است:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>

سند خطای دستورالعمل

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

ErrorDocument <error_code> <URL_page>

به عنوان مثال،

ErrorDocument 404 /errors/not_found.html

به این معنی است که وقتی خطای ۴۰۴ رخ می‌دهد، صفحه‌ی /errors/not_found.html باز خواهد شد. URL های مطلق به طور مشابه مشخص می‌شوند:

ErrorDocument 500 http://example.com/errors/server_error.html

این مثال نمایش صفحه server_error.html در آدرس http://example.com/errors/ را در صورت بروز خطای ۵۰۰ نشان می‌دهد.

عدم دسترسی به فهرست سایت

فایل .htaccess دارای دستور Deny from all است که به شما کمک می‌کند تا دسترسی به پوشه‌ها یا فایل‌های خاصی را در وب سرور خود مسدود کنید. این دستور می‌تواند در صورتی که می‌خواهید اطلاعات خصوصی یا فایل‌های مهم را از بازدیدکنندگان سایت پنهان کنید تا امنیت داده‌ها تضمین شود، مفید باشد.

برای غیرفعال کردن فهرست (مشاهده همه فهرست های موجود)، باید خط زیر را اضافه کنید:

Options -Indexes

نمونه ای از مسدود کردن دسترسی به یک فهرست خاص به صورت زیر است:

<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>

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

<Files "file.php">
Order Deny,Allow
Deny from all
</Files>

یا برای طیف وسیعی از فایل ها بر اساس پسوند:

<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>

مسدود کردن دسترسی با IP

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

مسدود کردن یک آدرس IP با دستور زیر انجام می شود:

Order Deny,Allow
Allow from all
Deny from 11.22.33.44

مسدود کردن چندین آدرس IP به طور مشابه با کپی کردن خط " Deny from " به همراه آدرس‌های مورد نیاز انجام می‌شود .

برای مسدود کردن طیف وسیعی از آدرس‌های IP:

Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24

برای اجازه دسترسی فقط برای IP های خاص، کد را اضافه کنید:

Order Deny,Allow
Deny from all
Allow from 11.22.33.44

برای انسداد کامل دسترسی، از دستورالعمل Deny from all استفاده کنید و برای مسدود کردن آدرس‌ها با استفاده از mask، Deny from 11.22 را مشخص کنید.

که در آن، عدد ۱۱.۲۲ نشان‌دهنده‌ی ماسک آدرس IP است.

مسدود کردن بازدیدکنندگان توسط User-Agent

مسدود کردن کاربران توسط User-Agent در فایل htaccess. روشی برای کنترل افرادی است که می توانند بر اساس اطلاعات مرورگری که بازدیدکننده استفاده می کند به وب سرور شما دسترسی داشته باشند. رشته User-Agent حاوی داده‌هایی درباره مرورگری است که شخص برای تعامل با سرور شما استفاده می‌کند و به لطف این اطلاعات، می‌توانید دسترسی کاربران خاصی را محدود کنید.

رایج‌ترین روش برای مسدود کردن توسط User-Agent استفاده از mod_rewrite است :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Bot1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot2 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot3 [NC]
RewriteRule ^.*$ - [F,L]
</IfModule>

در این مثال:

  1. RewriteCond %{HTTP_USER_AGENT} برای بررسی رشته User-Agent استفاده می‌شود.
  2. ^Bot1، ^Bot2، ^Bot3 نمونه هایی از رشته های User-Agent هستند که می خواهیم آنها را مسدود کنیم. اصلاح‌کننده‌های NC نشان می‌دهند که مقایسه باید به حروف بزرگ و کوچک حساس نباشد.
  3. RewriteRule ^.*$ - [F,L] در صورت رعایت هر یک از شرایط RewriteCond برای درخواست اعمال می شود. پاسخی با کد وضعیت ممنوعه 403 (F) ارسال می کند و قوانین پردازش (L) را متوقف می کند.

کش در htaccess

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

به یک مثال توجه کنید:

# Enable caching for images for 1 month
<FilesMatch "\.(jpg|jpeg|png|gif|svg)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>

# Enable caching for CSS and JavaScript for 1 week
<FilesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

از سوی دیگر، برای منابعی که اغلب به‌روزرسانی می‌شوند، غیرفعال کردن کش ضروری است:

# Excluding caching for HTML pages and XML files
<FilesMatch "\.(html|xml)$">
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "0"
</FilesMatch>

بهینه سازی عملکرد سایت

ماژول‌های mod_deflate و mod_gzip در آپاچی به فشرده‌سازی اطلاعاتی که سرور به دستگاه‌های کاربران ارسال می‌کند، کمک می‌کنند. این کار باعث می‌شود حجم فایل‌ها کاهش یابد که به نوبه خود سرعت بارگذاری صفحه را افزایش می‌دهد. با این حال، مهم است به یاد داشته باشید که پشتیبانی و پیکربندی این ماژول‌ها ممکن است بسته به سرور شما متفاوت باشد.

مثالی از استفاده از ماژول mod_deflate :

<IfModule mod_deflate.c>
# Compressing text file types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>

مثال برای mod_gzip :

<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ # Enabling compression for files with extensions .html, .txt, .css, .js, .php, .pl
mod_gzip_item_include mime ^application/x-javascript.* # Enabling compression for MIME types starting with application/x-javascript
mod_gzip_item_include mime ^text/.* # Enabling compression for MIME types starting with text/
mod_gzip_item_exclude mime ^image/.* # Excluding from compression MIME types starting with image/
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* # Excluding already compressed data (responses with the Content-Encoding: gzip header)
</IfModule>

ما در مورد رایج‌ترین دستورالعمل‌ها بحث کردیم. می‌توانید با تمام قابلیت‌های این فایل در مستندات رسمی آشنا شوید.

نحوه بررسی عملکرد فایل htaccess

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

  1. عمدا فایل htaccess را با خطا تغییر دهید. در پاسخ سرور باید خطا بدهد. این روش نشان می دهد که آیا عملیات فایل به طور کلی روی سرور اعمال می شود یا خیر.
  2. عملکرد تغییرات خاصی را که ایجاد کرده اید بررسی کنید. به عنوان مثال، یک تنظیم جزئی در یکی از پارامترها انجام دهید و وجود تغییرات را ارزیابی کنید.
  3. اگر تغییرات مربوط به پاسخ سرور است، کد وضعیت صفحه را بررسی کنید. نحوه انجام این کار، قبلا در مقاله توضیح دادیم کدهای خطای HTTP: لیست کاملی از خطاهای سرور.
  4. به گزارش های سرور مراجعه کنید. آنها تمام خطاهای مربوط به عملکرد فایل htaccess را نمایش می دهند.
  5. آزمایش را با استفاده از خدمات یا ابزارهای آنلاین انجام دهید.

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

نتیجه

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

❮ مقاله قبلی نحوه پیکربندی وب سرور (Apache-PHP-MySQL/MariaDB) در لینوکس
مقاله بعدی ❯ راه اندازی سرور FTP

VPS را از ما بخواهید

ما همیشه آماده پاسخگویی به سوالات شما در هر ساعت از شبانه روز هستیم.