Бул макалада биз .htaccess файлын колдонуунун негизги принциптерин изилдейбиз, бул SEO деңгээлин жогорулатуу үчүн абдан маанилүү. Бул файл издөө системалары тарабынан барактардын туура индекстелүүсүн камсыз кылат. Биз багыттоолорду кантип башкарууну, коопсуздукту конфигурациялоону жана майнаптуулукту жогорулатууну үйрөнөбүз. Мындан тышкары, биз бул файлды өз алдынча кантип конфигурациялоо боюнча кеңештерди беребиз.
Эмне үчүн .htaccess керек
.htaccess файлы Apache серверлериндеги веб-иштеп чыгуучулар үчүн "алыстан башкаруунун" бир түрү катары иштейт. Ал ар кандай параметрлерди тууралоо жана веб-сайттын жүрүм-турумун башкаруу үчүн ыңгайлуу куралдарды сунуштайт. Сервердин негизги конфигурация файлдарына түз жетүү мүмкүн болбогондо (мисалы, виртуалдык хостингде болгон сыяктуу), .htaccess керектүү өзгөртүүлөрдү киргизүү үчүн пайдалуу курал болуп калат.
Htaccess көбүнчө сайтыңыздын түпкү папкасында же атайын конфигурация керек болгон папкаларда жайгашкан. Мисалы, эгер сиз WordPressти колдонсоңуз, конфигурацияны биз макалада талкуулаган Yoast SEO плагини аркылуу жасоого болот. robots.txt конфигурацияланууда. Башка учурларда, талап кылынган папкага өтүп, учурдагы .htaccess файлын түзөтүү же али түзүлө элек болсо, аны түзүү жетиштүү.
.htaccess файлын конфигурациялоо
301 Redirect 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>
Директивалык ErrorDocument
Бул жөндөө сиздин сайтта 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 аркылуу кирүүгө бөгөт коюу
.htaccess файлында IP аркылуу кирүүнү бөгөттөө - бул белгилүү 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 дареги болуп саналат маска.
Колдонуучу-агент тарабынан конокторду бөгөттөө
.htaccess файлындагы 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 стилдери жана 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>
Сайттын иштешин оптималдаштыруу
The mod_deflate жана mod_gzip Apache модулдары сервер колдонуучулардын түзмөктөрүнө жиберген маалыматты кысууга жардам берет. Бул файлдардын көлөмүн кичирейтет, бул өз кезегинде баракты жүктөөнү тездетет. Бирок, бул модулдарды колдоо жана конфигурациялоо сервериңизге жараша ар кандай болушу мүмкүн экенин эстен чыгарбоо маанилүү.
колдонууга мисал 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 менен иштөөнү өздөштүргөндөн кийин, веб-сайттардын иштешин жана иштөөсүн жакшыртуу үчүн күчтүү куралга ээ болосуз.