შემეცნებითი მარტივი ინსტრუქციები Profitserver სერვისთან მუშაობისთვის
მთავარი შემეცნებითი მიმდინარეობს .htaccess ფაილის კონფიგურაცია

მიმდინარეობს .htaccess ფაილის კონფიგურაცია


ამ სტატიაში ჩვენ შევისწავლით .htaccess ფაილის გამოყენების ფუნდამენტურ პრინციპებს, რაც გადამწყვეტია SEO-ს გაუმჯობესებისთვის. ეს ფაილი უზრუნველყოფს საძიებო სისტემების მიერ გვერდების სათანადო ინდექსირებას. ჩვენ ვისწავლით გადამისამართებების მართვას, უსაფრთხოების კონფიგურაციას და მუშაობის ამაღლებას. გარდა ამისა, ჩვენ მოგაწვდით რჩევებს, თუ როგორ უნდა დააკონფიგურიროთ ეს ფაილი დამოუკიდებლად.

რატომ არის საჭირო .htaccess

.htaccess ფაილი მოქმედებს როგორც ერთგვარი "დისტანციური მართვის" ვებ დეველოპერებისთვის Apache სერვერებზე. ის გთავაზობთ მოსახერხებელ ინსტრუმენტებს სხვადასხვა პარამეტრების კორექტირებისთვის და ვებსაიტის ქცევის მართვისთვის. როდესაც პირდაპირი წვდომა სერვერის მთავარ კონფიგურაციის ფაილებზე მიუწვდომელია (როგორც ხშირად ხდება ვირტუალური ჰოსტინგის შემთხვევაში, მაგალითად), .htaccess ხდება სასარგებლო ინსტრუმენტი საჭირო ცვლილებების შესატანად.

Htaccess ხშირად მდებარეობს თქვენი საიტის ძირეულ საქაღალდეში ან იმ საქაღალდეებში, სადაც საჭიროა სპეციალური კონფიგურაცია. მაგალითად, თუ იყენებთ WordPress-ს, კონფიგურაცია შეიძლება გაკეთდეს Yoast SEO მოდულის საშუალებით, რომელიც განვიხილეთ სტატიაში. მიმდინარეობს robots.txt-ის კონფიგურაცია. სხვა შემთხვევაში, საკმარისია გადახვიდეთ საჭირო საქაღალდეში და დაარედაქტიროთ არსებული .htaccess ფაილი, ან შექმნათ, თუ ის ჯერ არ არის შექმნილი.

.htaccess ფაილის კონფიგურაცია

301 გადამისამართება htaccess

301 გადამისამართება .htaccess ფაილში შეიძლება შევადაროთ ვებსაიტზე მუდმივ გადამისამართებას. ის აცნობებს საძიებო სისტემებსა და ბრაუზერებს, რომ გვერდი მუდმივად მდებარეობს ახალ მისამართზე და გვთავაზობს სანიშნეების განახლებას და ინდექსირებას. ასეთი გადამისამართება ჩვეულებრივ გამოიყენება, როდესაც გვერდი გადატანილია ან წაიშლება, რათა შეინარჩუნოს მისი რეიტინგი ძიების შედეგებში და გადამისამართოს ვიზიტორები ახალ მდებარეობაზე.

გადამისამართების გასააქტიურებლად, თქვენ უნდა ჩართოთ შესაბამისი ბრძანება .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-ით

IP-ით წვდომის დაბლოკვა .htaccess ფაილში არის მეთოდი, რომელიც საშუალებას გაძლევთ შეზღუდოთ წვდომა თქვენს ვებსაიტზე კონკრეტული 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>

ამ მაგალითში:

  1. RewriteCond %{HTTP_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-ის შესახებ

ჩვენ ყოველთვის მზად ვართ ვუპასუხოთ თქვენს შეკითხვებს დღისა და ღამის ნებისმიერ დროს.