Knowledgebase Udhëzime të thjeshta për të punuar me shërbimin Profitserver
Kryesor Knowledgebase Konfigurimi i skedarit .htaccess

Konfigurimi i skedarit .htaccess


Në këtë artikull, ne do të shqyrtojmë parimet themelore të përdorimit të skedarit .htaccess, i cili është vendimtar për përmirësimin e SEO. Ky skedar siguron indeksimin e duhur të faqeve nga motorët e kërkimit. Do të mësojmë se si të menaxhojmë ridrejtimet, të konfigurojmë sigurinë dhe të rrisim performancën. Për më tepër, ne do të ofrojmë këshilla se si të konfiguroni këtë skedar në mënyrë të pavarur.

Pse nevojitet .htaccess

Skedari .htaccess vepron si një lloj "komandimi në distancë" për zhvilluesit e uebit në serverët Apache. Ai ofron mjete të përshtatshme për rregullimin e parametrave të ndryshëm dhe menaxhimin e sjelljes së një faqe interneti. Kur aksesi i drejtpërdrejtë në skedarët kryesorë të konfigurimit të serverit nuk është i disponueshëm (siç ndodh shpesh me hostimin virtual, për shembull), .htaccess bëhet një mjet i dobishëm për të bërë ndryshimet e nevojshme.

Htaccess shpesh gjendet në dosjen rrënjë të faqes tuaj ose në ato dosje ku nevojitet konfigurim i veçantë. Për shembull, nëse përdorni WordPress, konfigurimi mund të bëhet përmes shtojcës SEO Yoast, të cilën e diskutuam në artikullin mbi Konfigurimi i robots.txt. Në raste të tjera, mjafton të shkoni te dosja e kërkuar dhe të redaktoni skedarin ekzistues .htaccess, ose ta krijoni nëse nuk është krijuar ende.

Konfigurimi i skedarit .htaccess

301 Ridrejto htaccess

Një ridrejtim 301 në skedarin .htaccess mund të krahasohet me një ridrejtim të përhershëm në një faqe interneti. Ai informon motorët e kërkimit dhe shfletuesit se faqja tani është e vendosur përgjithmonë në një adresë të re dhe sugjeron përditësimin e faqeshënuesve dhe indeksimin. Një ridrejtim i tillë zakonisht përdoret kur një faqe zhvendoset ose fshihet për të ruajtur renditjen e saj në rezultatet e kërkimit dhe për të ridrejtuar vizitorët në vendndodhjen e re.

Për të aktivizuar ridrejtimet, duhet të aktivizoni komandën përkatëse në skedarin .htaccess:

RewriteEngine on

Pas kësaj, mund të konfiguroni formën më të thjeshtë të ridrejtimit:

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>

Një ridrejtim i ngjashëm duke përdorur Ridrejtimi i Përhershëm direktiva duket si kjo:

<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>

Këto janë metodat më të lehta të ridrejtimit për t'u konfiguruar. Le të shqyrtojmë një konfigurim që përdor lloje të tjera, më të avancuara ridrejtimesh me mod_rewrite moduli:

<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>

Një ridrejtim 302 .htaccess, që tregon zhvendosje të përkohshme, haset shumë më rrallë. Këtu është një shembull i një cilësimi të tillë:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>

Dokumenti i gabimit të direktivës

Ky cilësim ju lejon të kontrolloni se çfarë shikon përdoruesi kur ndodhin gabime HTTP në faqen tuaj. Në vend të mesazhit standard të gabimit, mund të shfaqni faqen tuaj, e cila do të jetë më informuese për vizitorin dhe do t'i ndihmojë ata të kuptojnë se çfarë ka ndodhur. Thjesht ndiqni këtë sintaksë për përdorim:

ErrorDocument <error_code> <URL_page>

Për shembull,

ErrorDocument 404 /errors/not_found.html

Do të thotë se kur a 404 ndodh gabimi, faqja në /errors/not_found.html do të hapet. URL-të absolute janë specifikuar në mënyrë të ngjashme:

ErrorDocument 500 http://example.com/errors/server_error.html

Ky shembull tregon shfaqjen e server_error.html Faqja në http://example.com/errors/ në rast të a 500 gabim.

Refuzimi i hyrjes në një drejtori faqesh

Skedari .htaccess ka komandën Moho nga të gjithë, i cili ndihmon në mohimin e aksesit në dosje ose skedarë të caktuar në serverin tuaj të internetit. Kjo mund të jetë e dobishme nëse dëshironi të fshehni informacione private ose skedarë të rëndësishëm nga vizitorët e faqes për të siguruar sigurinë e të dhënave.

Për të çaktivizuar listimin (duke parë të gjitha drejtoritë e disponueshme), duhet të shtoni rreshtin:

Options -Indexes

Një shembull i bllokimit të aksesit në një drejtori të caktuar duket si ky:

<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>

Në mënyrë të ngjashme, ju mund të mohoni aksesin në një skedar të vetëm:

<Files "file.php">
Order Deny,Allow
Deny from all
</Files>

Ose për një sërë skedarësh sipas zgjerimit:

<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>

Bllokimi i aksesit me IP

Bllokimi i aksesit me IP në skedarin .htaccess është një metodë që ju lejon të kufizoni aksesin në faqen tuaj të internetit për adresa IP specifike ose grupet e tyre. Kjo mund të jetë e dobishme nëse doni të parandaloni aksesin në faqen tuaj ose në pjesët specifike të tij për njerëz të caktuar ose robotë të padëshiruar.

Bllokimi i një adrese IP të vetme bëhet me komandën:

Order Deny,Allow
Allow from all
Deny from 11.22.33.44

Bllokimi i disa adresave IP bëhet në mënyrë të ngjashme duke dublikuar "Moho nga" rreshtoni me adresat e kërkuara.

Për bllokimin e një sërë adresash IP:

Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24

Për të lejuar aksesin vetëm për IP të veçanta, shtoni kodin:

Order Deny,Allow
Deny from all
Allow from 11.22.33.44

Për një mohim të plotë të aksesit, përdorni direktivën Moho nga të gjithë, dhe për bllokimin e adresave me maskë, specifikoni Moho nga 11.22.

ku, 11.22 është adresa IP maskë.

Bllokimi i vizitorëve nga agjenti i përdoruesit

Bllokimi i përdoruesve nga User-Agent në skedarin .htaccess është një metodë për të kontrolluar se kush mund të hyjë në serverin tuaj të internetit bazuar në informacionin rreth shfletuesit që përdor vizitori. Vargu User-Agent përmban të dhëna për shfletuesin që një person përdor për të bashkëvepruar me serverin tuaj dhe falë këtij informacioni, ju mund të kufizoni aksesin për përdorues të caktuar.

Mënyra më e zakonshme për të bllokuar nga User-Agent është përdorimi 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>

Në këtë shembull:

  1. RewriteCond %{HTTP_USER_AGENT} përdoret për të kontrolluar vargun User-Agent.
  2. ^Bot1, ^Bot2, ^Bot3 janë shembuj të vargjeve të agjentit përdorues që duam të bllokojmë. Modifikuesit NC tregojnë se krahasimi duhet të jetë i pandjeshëm ndaj shkronjave të vogla.
  3. RewriteRule ^.*$ - [F,L] zbatohet për kërkesën nëse plotësohet ndonjë nga kushtet e RewriteCond. Ai dërgon një përgjigje me kodin e statusit të ndaluar 403 (F) dhe ndalon rregullat e përpunimit (L).

Caching në htaccess

Konfigurimi i cachimit përmes skedarit .htaccess ndihmon në përshpejtimin e faqes tuaj duke e bërë atë të ngarkohet më shpejt për përdoruesit. Ajo funksionon kështu: disa skedarë, të tillë si imazhet, stilet CSS dhe skriptet JavaScript, ruhen në cache të shfletuesit të përdoruesit pas ngarkimit të parë. Tani shfletuesi mund t'i përdorë këta skedarë nga cache, në vend që t'i ringarkojë ato nga serveri sa herë që përdoruesi viziton një faqe. Kjo redukton kohën e ngarkimit dhe përmirëson performancën e faqes.

Konsideroni një shembull:

# 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>

Për burimet që përditësohen shpesh, nga ana tjetër, është e nevojshme të çaktivizoni caching:

# 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>

Optimizimi i performancës së sitit

La mod_deflate mod_gzip modulet në Apache ndihmojnë në kompresimin e informacionit që serveri dërgon te pajisjet e përdoruesve. Kjo i bën skedarët më të vegjël në madhësi, gjë që nga ana tjetër shpejton ngarkimin e faqeve. Megjithatë, është e rëndësishme të mbani mend se mbështetja dhe konfigurimi i këtyre moduleve mund të ndryshojnë në varësi të serverit tuaj.

Shembull i përdorimit të mod_deflate moduli:

<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>

Shembull për 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>

Ne diskutuam direktivat më të përdorura. Ju mund të njiheni me të gjitha aftësitë e skedarit në dokumentacioni zyrtar.

Si të kontrolloni funksionalitetin e skedarit .htaccess

Për të kontrolluar nëse skedari juaj .htaccess po funksionon në sajt, mund të kryeni hapat e mëposhtëm:

  1. Ndryshoni qëllimisht skedarin .htaccess me një gabim. Si përgjigje, serveri duhet të japë një gabim. Kjo metodë tregon nëse funksionimi i skedarit zbatohet përgjithësisht në server.
  2. Kontrolloni funksionalitetin e ndryshimeve specifike që keni bërë. Për shembull, bëni një rregullim të vogël në një nga parametrat dhe vlerësoni praninë e ndryshimeve.
  3. Kontrolloni kodin e statusit të faqes nëse ndryshimet lidhen me përgjigjen e serverit. Si ta bëjmë këtë, kemi përshkruar më parë në artikull Kodet e gabimit HTTP: një listë e plotë e gabimeve të serverit.
  4. Referojuni regjistrave të serverit. Ato shfaqin të gjitha gabimet që lidhen me funksionimin e skedarit .htaccess.
  5. Kryeni testimin duke përdorur shërbime ose mjete në internet.

Është e rëndësishme të kuptoni se për të kontrolluar funksionalitetin e skedarit .htaccess, nuk keni nevojë të kryeni të gjitha hapat menjëherë. Mjafton të zgjidhni metodën më të përshtatshme nga lista dhe ta përdorni atë.

Përfundim

Konfigurimi i skedarit .htaccess është një hap i rëndësishëm në optimizimin dhe mbrojtjen e serverit tuaj Apache. Ne kemi eksploruar se si ky skedar ndihmon në menaxhimin e ridrejtimeve, kompresimin e përmbajtjes dhe sigurimin e sigurisë. Pasi të keni zotëruar punën me .htaccess, ju fitoni një mjet të fuqishëm për të përmirësuar performancën dhe funksionalitetin e faqeve të internetit.

❮ Artikulli i mëparshëm Konfigurimi i serverit FTP
Artikulli tjetër ❯ Si të konfiguroni një server në internet (Apache-PHP-MySQL/MariaDB) në Linux

Na pyesni për VPS

Ne jemi gjithmonë të gatshëm t'u përgjigjemi pyetjeve tuaja në çdo kohë të ditës apo natës.