Այս հոդվածում մենք կուսումնասիրենք .htaccess ֆայլի օգտագործման հիմնարար սկզբունքները, որոնք շատ կարևոր են SEO-ի բարելավման համար: Այս ֆայլը ապահովում է էջերի պատշաճ ինդեքսավորումը որոնման համակարգերի կողմից: Մենք կսովորենք, թե ինչպես կառավարել վերահղումները, կարգավորել անվտանգությունը և բարձրացնել կատարողականությունը: Բացի այդ, մենք խորհուրդներ կտանք, թե ինչպես կարգավորել այս ֆայլը ինքնուրույն:
Ինչու է անհրաժեշտ .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>
Նմանատիպ վերահղում օգտագործելով Վերահղում Մշտական հրահանգն ունի հետևյալ տեսքը.
<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-ի միջոցով մուտքի արգելափակում
.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 հասցեն է դիմակ.
Այցելուների արգելափակում 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 ոճերը և 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>
Կայքի աշխատանքի օպտիմիզացում
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-ի հետ աշխատելուն, դուք ձեռք եք բերում հզոր գործիք՝ բարելավելու կայքերի աշխատանքը և ֆունկցիոնալությունը: