Knowledgebase Profitserver ծառայության հետ աշխատելու պարզ հրահանգներ
Հիմնական Knowledgebase .htaccess ֆայլի կարգավորում

.htaccess ֆայլի կարգավորում


Այս հոդվածում մենք կուսումնասիրենք .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>

Այս օրինակում.

  1. RewriteCond %{HTTP_USER_AGENT} օգտագործվում է User-Agent տողը ստուգելու համար:
  2. ^Bot1, ^Bot2, ^Bot3-ը User-Agent տողերի օրինակներ են, որոնք ցանկանում ենք արգելափակել: NC մոդիֆիկատորները ցույց են տալիս, որ համեմատությունը պետք է լինի առանց մեծատառերի:
  3. 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 ֆայլն աշխատում է կայքում, կարող եք կատարել հետևյալ քայլերը.

  1. Միտումնավոր փոխեք .htaccess ֆայլը սխալով: Ի պատասխան՝ սերվերը պետք է սխալ տա։ Այս մեթոդը ցույց է տալիս, թե արդյոք ֆայլի գործողությունը սովորաբար կիրառվում է սերվերի վրա:
  2. Ստուգեք ձեր կատարած կոնկրետ փոփոխությունների ֆունկցիոնալությունը: Օրինակ, մի փոքր ճշգրտում կատարեք պարամետրերից մեկում և գնահատեք փոփոխությունների առկայությունը:
  3. Ստուգեք էջի կարգավիճակի կոդը, եթե փոփոխությունները կապված են սերվերի պատասխանի հետ: Ինչպես դա անել, մենք նախկինում նկարագրել ենք հոդվածում HTTP սխալի կոդեր. սերվերի սխալների ամբողջական ցանկ.
  4. Տե՛ս սերվերի տեղեկամատյանները: Նրանք ցուցադրում են .htaccess ֆայլի աշխատանքի հետ կապված բոլոր սխալները:
  5. Անցկացրեք թեստավորում՝ օգտագործելով առցանց ծառայություններ կամ գործիքներ:

Կարևոր է հասկանալ, որ .htaccess ֆայլի ֆունկցիոնալությունը ստուգելու համար հարկավոր չէ միանգամից կատարել բոլոր քայլերը: Բավական է ցուցակից ընտրել ամենահարմար մեթոդը և օգտագործել այն։

Եզրափակում

.htaccess ֆայլի կազմաձևումը կարևոր քայլ է ձեր Apache սերվերի օպտիմալացման և պաշտպանության համար: Մենք ուսումնասիրել ենք, թե ինչպես է այս ֆայլն օգնում կառավարել վերահղումները, սեղմել բովանդակությունը և ապահովել անվտանգությունը: Երբ դուք տիրապետում եք .htaccess-ի հետ աշխատելուն, դուք ձեռք եք բերում հզոր գործիք՝ բարելավելու կայքերի աշխատանքը և ֆունկցիոնալությունը:

❮ Նախորդ հոդված FTP սերվերի կարգավորում
Հաջորդ հոդվածը ❯ Ինչպես կարգավորել վեբ սերվերը (Apache-PHP-MySQL/MariaDB) Linux-ում

Հարցրեք մեզ VPS-ի մասին

Մենք միշտ պատրաստ ենք պատասխանել ձեր հարցերին օրվա կամ գիշերվա ցանկացած ժամի: