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

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


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

Ինչու է անհրաժեշտ .htaccess

.htaccess ֆայլը մի տեսակ «հեռակառավարման» դեր է կատարում Apache սերվերների վրա վեբ մշակողների համար: Այն առաջարկում է հարմար գործիքներ տարբեր պարամետրերը կարգավորելու և կայքի վարքագիծը կառավարելու համար: Երբ ուղղակի մուտքը դեպի սերվերի հիմնական կազմաձևման ֆայլեր անհասանելի է (ինչպես, օրինակ, հաճախ պատահում է վիրտուալ հոսթինգի դեպքում), .htaccess-ը դառնում է օգտակար գործիք անհրաժեշտ փոփոխություններ կատարելու համար:

Htaccess-ը հաճախ գտնվում է ձեր կայքի root թղթապանակում կամ այն ​​թղթապանակներում, որտեղ անհրաժեշտ է հատուկ կարգավորում: Օրինակ, եթե դուք օգտագործում եք 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

Այս օրինակը ցույց է տալիս server_error.html էջի ցուցադրումը http://example.com/errors/ հասցեում ՝ 500 սխալի դեպքում ։

Կայքի տեղեկատու մուտքի մերժում

.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 հասցեի դիմակն է ։

Այցելուների արգելափակում 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>

Կայքի աշխատանքի օպտիմիզացում

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 ֆայլն աշխատում է կայքում, կարող եք կատարել հետևյալ քայլերը.

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

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

Եզրափակում

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


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

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