Бул макалада биз .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
Бул мисал 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 даректерди бөгөттөө " Тыюу салуу " сабын керектүү даректер менен көчүрүү менен ушул сыяктуу эле жасалат .
Бир катар 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 биз бөгөттөөнү каалаган 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>
Сайттын иштешин оптималдаштыруу
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 менен иштөөнү өздөштүргөндөн кийин, веб-сайттардын иштешин жана иштөөсүн жакшыртуу үчүн күчтүү куралга ээ болосуз.