Энэ нийтлэлд бид SEO-ийг сайжруулахад чухал ач холбогдолтой .htaccess файлыг ашиглах үндсэн зарчмуудыг судлах болно. Энэ файл нь хайлтын системээр хуудсуудыг зөв индексжүүлэх боломжийг олгодог. Бид дахин чиглүүлэлтүүдийг хэрхэн удирдах, аюулгүй байдлыг тохируулах, гүйцэтгэлийг нэмэгдүүлэх талаар сурах болно. Нэмж дурдахад бид энэ файлыг хэрхэн бие даан тохируулах талаар зөвлөгөө өгөх болно.
Яагаад .htaccess хэрэгтэй вэ?
.htaccess файл нь Apache сервер дээрх вэб хөгжүүлэгчдэд зориулсан "алсын удирдлага"-ын үүрэг гүйцэтгэдэг. Энэ нь янз бүрийн параметрүүдийг тохируулах, вэбсайтын үйл ажиллагааг удирдахад тохиромжтой хэрэгслийг санал болгодог. Серверийн үндсэн тохиргооны файлд шууд хандах боломжгүй үед (жишээлбэл, виртуал хостингтой адил) .htaccess нь шаардлагатай өөрчлөлтийг хийхэд хэрэгтэй хэрэгсэл болдог.
Htaccess нь ихэвчлэн таны сайтын үндсэн хавтас эсвэл тусгай тохиргоо шаардлагатай хавтаснуудад байрладаг. Жишээлбэл, хэрэв та WordPress ашигладаг бол тохиргоог Yoast SEO залгаасаар дамжуулан хийж болно, үүнийг бид robots.txt файлыг тохируулах тухай нийтлэлд хэлэлцсэн . Бусад тохиолдолд шаардлагатай хавтас руу очиж, одоо байгаа .htaccess файлыг засах эсвэл хараахан үүсгээгүй бол үүсгэхэд хангалттай.
.htaccess файлыг тохируулж байна
301 htaccess-ийг дахин чиглүүлэх
.htaccess файл дахь 301 чиглүүлэлт нь вэбсайт дээрх байнгын дахин чиглүүлэлттэй адилтгаж болно. Энэ нь хайлтын систем болон хөтчүүдэд хуудас нь шинэ хаяг дээр байнга байрлаж байгааг мэдэгдэж, хавчуурга, индексжүүлэлтийг шинэчлэхийг санал болгож байна. Хайлтын илэрц дэх зэрэглэлийг хадгалах, зочдыг шинэ байршил руу дахин чиглүүлэхийн тулд хуудсыг зөөх эсвэл устгах үед ийм дахин чиглүүлэлт ихэвчлэн ашиглагддаг.
Дахин чиглүүлэлтүүдийг идэвхжүүлэхийн тулд та .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
Энэ нь 404 алдаа гарахад /errors/not_found.html хаяг дахь хуудас нээгдэнэ гэсэн үг юм . Үнэмлэхүй URL-уудыг мөн адил тодорхойлсон болно:
ErrorDocument 500 http://example.com/errors/server_error.html
Энэ жишээ нь 500 алдаа гарсан тохиолдолд 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-ээр хандалтыг хаах
.htaccess файл дахь IP хандалтыг хаах нь тодорхой 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 гэсэн зааврыг ашиглаарай , мөн хаягийг маскаар хаахын тулд Deny from 11.22 гэсэн зааврыг ашиглана уу.
Энд 11.22 нь IP хаягийн маск юм.
Хэрэглэгч-агентаар зочдыг хаах
.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 нь бидний хаахыг хүссэн Хэрэглэгч-Агент мөрүүдийн жишээ юм. Сүлжээний сүлжээний хувиргагчид нь харьцуулалт нь том жижиг үсгийг харгалзахгүй байхыг харуулж байна.
- RewriteRule ^.*$ - RewriteCond-ийн аль нэг нөхцөл хангагдсан тохиолдолд [F,L] хүсэлтэд хамаарна. Энэ нь 403 Хориотой статусын код (F) бүхий хариу илгээж, боловсруулах дүрмийг (L) зогсооно.
htaccess дээр кэш хийх
.htaccess файлаар дамжуулан кэшийг тохируулах нь таны сайтыг хэрэглэгчдэд илүү хурдан ачаалахад тусалдаг. Энэ нь дараах байдлаар ажилладаг: зураг, CSS загвар, JavaScript скрипт зэрэг зарим файлууд нь эхний ачааллын дараа хэрэглэгчийн хөтчийн кэшэд хадгалагддаг. Одоо хөтөч нь хэрэглэгчийг хуудсанд зочлох бүрт серверээс дахин ачаалахын оронд эдгээр файлуудыг кэшээс ашиглах боломжтой болсон. Энэ нь ачаалах хугацааг багасгаж, сайтын гүйцэтгэлийг сайжруулдаг.
Жишээ авч үзье:
# 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>
Сайтын гүйцэтгэлийг оновчтой болгох
Apache дахь 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 файлыг тохируулах нь таны Apache серверийг оновчтой болгох, хамгаалах чухал алхам юм. Энэ файл нь дахин чиглүүлэлтүүдийг удирдах, контентыг шахах, аюулгүй байдлыг хангахад хэрхэн тусалдаг талаар бид судалсан. Та .htaccess-тэй ажиллахыг эзэмшсэний дараа вэбсайтуудын гүйцэтгэл, ажиллагааг сайжруулах хүчирхэг хэрэгсэлтэй болно.