در این مقاله، اصول اساسی استفاده از فایل 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>
تغییر مسیر مشابه با استفاده از تغییر مسیر دائمی دستورالعمل به این شکل است:
<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
به این معنی که وقتی الف 404 خطا رخ می دهد، صفحه در /errors/not_found.html باز خواهد شد. URL های مطلق به طور مشابه مشخص می شوند:
ErrorDocument 500 http://example.com/errors/server_error.html
این مثال نمایشگر را نشان می دهد server_error.html صفحه در http://example.com/errors/ در صورت 500 خطا.
عدم دسترسی به فهرست سایت
فایل htaccess دستور دارد انکار از همه، که به جلوگیری از دسترسی به پوشه ها یا فایل های خاص در وب سرور شما کمک می کند. اگر میخواهید اطلاعات خصوصی یا فایلهای مهم را از بازدیدکنندگان سایت برای اطمینان از امنیت دادهها پنهان کنید، میتواند مفید باشد.
برای غیرفعال کردن فهرست (مشاهده همه فهرست های موجود)، باید خط زیر را اضافه کنید:
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 به طور مشابه با کپی کردن " انجام می شود.تکذیب از" با آدرس های مورد نیاز خط بکشید.
برای مسدود کردن طیف وسیعی از آدرسهای 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
برای انکار کامل دسترسی، از دستورالعمل استفاده کنید انکار از همهو برای مسدود کردن آدرس ها توسط ماسک، مشخص کنید تکذیب از 11.22.
جایی که، 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>
در این مثال:
- RewriteCond %{HTTP_USER_AGENT} برای بررسی رشته User-Agent استفاده میشود.
- ^Bot1، ^Bot2، ^Bot3 نمونه هایی از رشته های User-Agent هستند که می خواهیم آنها را مسدود کنیم. اصلاحکنندههای NC نشان میدهند که مقایسه باید به حروف بزرگ و کوچک حساس نباشد.
- 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>
بهینه سازی عملکرد سایت
La 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 شما در سایت کار می کند، می توانید مراحل زیر را انجام دهید:
- عمدا فایل htaccess را با خطا تغییر دهید. در پاسخ سرور باید خطا بدهد. این روش نشان می دهد که آیا عملیات فایل به طور کلی روی سرور اعمال می شود یا خیر.
- عملکرد تغییرات خاصی را که ایجاد کرده اید بررسی کنید. به عنوان مثال، یک تنظیم جزئی در یکی از پارامترها انجام دهید و وجود تغییرات را ارزیابی کنید.
- اگر تغییرات مربوط به پاسخ سرور است، کد وضعیت صفحه را بررسی کنید. نحوه انجام این کار، قبلا در مقاله توضیح دادیم کدهای خطای HTTP: لیست کاملی از خطاهای سرور.
- به گزارش های سرور مراجعه کنید. آنها تمام خطاهای مربوط به عملکرد فایل htaccess را نمایش می دهند.
- آزمایش را با استفاده از خدمات یا ابزارهای آنلاین انجام دهید.
درک این نکته مهم است که برای بررسی عملکرد فایل htaccess. لازم نیست همه مراحل را یکجا انجام دهید. کافی است از لیست مناسب ترین روش را انتخاب کرده و از آن استفاده کنید.
نتیجه
پیکربندی فایل htaccess یک گام مهم در بهینه سازی و محافظت از سرور آپاچی شما است. ما بررسی کردهایم که چگونه این فایل به مدیریت تغییر مسیرها، فشردهسازی محتوا و تضمین امنیت کمک میکند. هنگامی که بر کار با htaccess. مسلط شدید، ابزار قدرتمندی برای بهبود عملکرد و عملکرد وب سایت ها به دست می آورید.