Knowledgebase Maagizo rahisi ya kufanya kazi na huduma ya Profitserver
Kuu ya Knowledgebase Inasanidi faili ya .htaccess

Inasanidi faili ya .htaccess


Katika makala haya, tutachunguza kanuni za msingi za kutumia faili ya .htaccess, ambayo ni muhimu kwa kuimarisha SEO. Faili hii inahakikisha indexing sahihi ya kurasa na injini za utafutaji. Tutajifunza jinsi ya kudhibiti uelekezaji kwingine, kusanidi usalama, na kuimarisha utendaji. Zaidi ya hayo, tutatoa vidokezo vya jinsi ya kusanidi faili hii kwa kujitegemea.

Kwa nini .htaccess Inahitajika

Faili ya .htaccess hufanya kama aina ya "kidhibiti cha mbali" kwa wasanidi wa wavuti kwenye seva za Apache. Inatoa zana zinazofaa za kurekebisha vigezo mbalimbali na kudhibiti tabia ya tovuti. Wakati ufikiaji wa moja kwa moja kwa faili kuu za usanidi wa seva haupatikani (kama kawaida kwa upangishaji pepe, kwa mfano), .htaccess inakuwa zana muhimu ya kufanya mabadiliko muhimu.

Htaccess mara nyingi iko kwenye folda ya mizizi ya tovuti yako au kwenye folda hizo ambapo usanidi maalum unahitajika. Kwa mfano, ikiwa unatumia WordPress, usanidi unaweza kufanywa kupitia programu-jalizi ya Yoast SEO, ambayo tulijadili katika nakala hiyo. Inasanidi robots.txt. Katika hali nyingine, inatosha kwenda kwenye folda inayohitajika na kuhariri faili iliyopo ya .htaccess, au kuunda ikiwa haijaundwa bado.

Inasanidi Faili ya .htaccess

301 Elekeza upya htaccess

Uelekezaji upya wa 301 katika faili ya .htaccess unaweza kulinganishwa na uelekezaji upya wa kudumu kwenye tovuti. Inafahamisha injini za utafutaji na vivinjari kwamba ukurasa sasa unapatikana kwa kudumu katika anwani mpya na inapendekeza kusasisha alamisho na indexing. Uelekezaji mwingine kama huu kwa kawaida hutumiwa ukurasa unapohamishwa au kufutwa ili kuhifadhi nafasi yake katika matokeo ya utafutaji na kuwaelekeza wageni kwenye eneo jipya.

Ili kuwezesha uelekezaji kwingine, unahitaji kuwezesha amri inayolingana katika faili ya .htaccess:

RewriteEngine on

Baada ya hapo, unaweza kusanidi njia rahisi zaidi ya uelekezaji upya:

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

Uelekezaji sawa sawa kwa kutumia RedirectPermanent mwongozo unaonekana kama hii:

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

Hizi ndizo njia rahisi zaidi za kuelekeza kwingine kusanidi. Wacha tuchunguze usanidi unaotumia aina zingine, za hali ya juu zaidi za uelekezaji upya na 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>

302 kuelekeza upya .htaccess, inayoonyesha uhamisho wa muda, hupatikana mara chache sana. Hapa kuna mfano wa mpangilio kama huu:

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

Hati ya Maagizo ya Hitilafu

Mpangilio huu hukuruhusu kudhibiti kile ambacho mtumiaji huona wakati hitilafu za HTTP zinatokea kwenye tovuti yako. Badala ya ujumbe wa kawaida wa makosa, unaweza kuonyesha ukurasa wako mwenyewe, ambao utakuwa wa habari zaidi kwa mgeni na kuwasaidia kuelewa kilichotokea. Fuata tu syntax hii kwa matumizi:

ErrorDocument <error_code> <URL_page>

Kwa mfano,

ErrorDocument 404 /errors/not_found.html

Ina maana kwamba wakati a 404 kosa hutokea, ukurasa katika /errors/not_found.html itafunguliwa. URL kamili zimebainishwa vile vile:

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

Mfano huu unaonyesha onyesho la server_error.html ukurasa katika http://example.com/errors/ katika tukio la 500 Kosa.

Inakataza Ufikiaji wa Saraka ya Tovuti

Faili ya .htaccess ina amri Kataa kutoka kwa wote, ambayo husaidia kukataa ufikiaji wa folda au faili fulani kwenye seva yako ya wavuti. Hii inaweza kuwa muhimu ikiwa unataka kuficha maelezo ya faragha au faili muhimu kutoka kwa wageni wa tovuti ili kuhakikisha usalama wa data.

Ili kuzima uorodheshaji (kutazama saraka zote zinazopatikana), unahitaji kuongeza mstari:

Options -Indexes

Mfano wa kuzuia ufikiaji wa saraka maalum inaonekana kama hii:

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

Vile vile, unaweza kukataa ufikiaji wa faili moja:

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

Au kwa anuwai ya faili kwa kiendelezi:

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

Kuzuia Ufikiaji kwa IP

Kuzuia ufikiaji wa IP katika faili ya .htaccess ni njia inayokuruhusu kuzuia ufikiaji wa wavuti yako kwa anwani maalum za IP au vikundi vyao. Hii inaweza kuwa muhimu ikiwa unataka kuzuia ufikiaji wa tovuti yako au sehemu zake maalum kwa watu fulani au roboti zisizohitajika.

Kuzuia anwani moja ya IP hufanywa na amri:

Order Deny,Allow
Allow from all
Deny from 11.22.33.44

Kuzuia anwani kadhaa za IP hufanywa vivyo hivyo kwa kuiga "Kataa kutoka" mstari na anwani zinazohitajika.

Kwa kuzuia anuwai ya anwani za IP:

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

Ili kuruhusu ufikiaji wa IP maalum pekee, ongeza msimbo:

Order Deny,Allow
Deny from all
Allow from 11.22.33.44

Kwa kukataliwa kabisa kwa ufikiaji, tumia maagizo Kataa kutoka kwa wote, na kwa kuzuia anwani kwa mask, taja Kataa kutoka 11.22.

Wapi, 11.22 ni anwani ya IP mask.

Kuzuia Wageni kwa Wakala wa Mtumiaji

Kuzuia watumiaji na Wakala wa Mtumiaji katika faili ya .htaccess ni mbinu ya kudhibiti ni nani anayeweza kufikia seva yako ya wavuti kulingana na maelezo kuhusu kivinjari anachotumia mgeni. Mfuatano wa Wakala wa Mtumiaji una data kuhusu kivinjari ambacho mtu hutumia kuingiliana na seva yako, na kutokana na maelezo haya, unaweza kuzuia ufikiaji kwa watumiaji fulani.

Njia ya kawaida ya kuzuia na Wakala wa Mtumiaji ni kutumia 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>

Katika mfano huu:

  1. RewriteCond %{HTTP_USER_AGENT} inatumika kuangalia mfuatano wa Wakala wa Mtumiaji.
  2. ^Bot1, ^Bot2, ^Bot3 ni mifano ya mifuatano ya Wakala wa Mtumiaji tunayotaka kuzuia. Virekebishaji vya NC vinaonyesha kuwa ulinganisho unapaswa kuwa usiojali kesi.
  3. RewriteRule ^.*$ - [F,L] inatumika kwa ombi ikiwa masharti yoyote ya RewriteCond yatatimizwa. Hutuma jibu kwa kutumia msimbo wa hali ya 403 Haramu (F) na kusimamisha sheria za uchakataji (L).

Kuhifadhi katika htaccess

Kuweka akiba kupitia faili ya .htaccess husaidia kuongeza kasi ya tovuti yako kwa kuifanya ipakie haraka kwa watumiaji. Inafanya kazi kama hii: faili fulani, kama vile picha, mitindo ya CSS, na hati za JavaScript, huhifadhiwa kwenye akiba ya kivinjari cha mtumiaji baada ya upakiaji wa kwanza. Sasa kivinjari kinaweza kutumia faili hizi kutoka kwa kache, badala ya kuzipakia tena kutoka kwa seva kila wakati mtumiaji anapotembelea ukurasa. Hii inapunguza muda wa kupakia na kuboresha utendaji wa tovuti.

Fikiria mfano:

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

Kwa rasilimali ambazo zinasasishwa mara kwa mara, kwa upande mwingine, ni muhimu kuzima 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>

Kuboresha Utendaji wa Tovuti

The mod_deflate na mod_gzip moduli katika Apache husaidia kubana habari ambayo seva hutuma kwa vifaa vya watumiaji. Hii hufanya faili kuwa ndogo kwa saizi, ambayo pia huharakisha upakiaji wa ukurasa. Hata hivyo, ni muhimu kukumbuka kwamba usaidizi na usanidi wa moduli hizi zinaweza kutofautiana kulingana na seva yako.

Mfano wa kutumia 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>

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

Tulijadili maagizo yanayotumiwa sana. Unaweza kujijulisha na uwezo wote wa faili kwenye faili ya nyaraka rasmi.

Jinsi ya Kuangalia Utendakazi wa Faili ya .htaccess

Ili kuangalia kama faili yako ya .htaccess inafanya kazi kwenye tovuti, unaweza kutekeleza hatua zifuatazo:

  1. Badilisha kwa makusudi faili ya .htaccess yenye hitilafu. Kwa kujibu, seva inapaswa kutoa hitilafu. Njia hii inaonyesha kama utendakazi wa faili kwa ujumla hutumika kwenye seva.
  2. Angalia utendakazi wa mabadiliko mahususi ambayo umefanya. Kwa mfano, fanya marekebisho madogo kwa moja ya vigezo na tathmini uwepo wa mabadiliko.
  3. Angalia msimbo wa hali ya ukurasa ikiwa mabadiliko yanahusiana na majibu ya seva. Jinsi ya kufanya hivyo, tulielezea hapo awali katika makala hiyo Misimbo ya Hitilafu ya HTTP: orodha kamili ya makosa ya seva.
  4. Rejelea kumbukumbu za seva. Wanaonyesha makosa yote yanayohusiana na uendeshaji wa faili ya .htaccess.
  5. Fanya majaribio kwa kutumia huduma za mtandaoni au zana.

Ni muhimu kuelewa kwamba kuangalia utendaji wa faili ya .htaccess, huna haja ya kufanya hatua zote mara moja. Inatosha kuchagua njia inayofaa zaidi kutoka kwenye orodha na kuitumia.

Hitimisho

Kusanidi faili ya .htaccess ni hatua muhimu katika kuboresha na kulinda seva yako ya Apache. Tumechunguza jinsi faili hii inavyosaidia kudhibiti uelekezaji kwingine, kubana maudhui na kuhakikisha usalama. Ukishajua kufanya kazi na .htaccess, unapata zana madhubuti ya kuboresha utendakazi na utendakazi wa tovuti.

❮ Makala iliyotangulia Jinsi ya kusanidi seva ya wavuti (Apache-PHP-MySQL/MariaDB) kwenye Linux
Makala yanayofuata ❯ Usanidi wa seva ya FTP

Tuulize kuhusu VPS

Daima tuko tayari kujibu maswali yako wakati wowote wa mchana au usiku.