In hierdie artikel sal ons die fundamentele beginsels van die gebruik van die .htaccess-lêer ondersoek, wat noodsaaklik is vir die verbetering van SEO. Hierdie lêer verseker behoorlike indeksering van bladsye deur soekenjins. Ons sal leer hoe om herleidings te bestuur, sekuriteit op te stel en werkverrigting te verbeter. Daarbenewens sal ons wenke verskaf oor hoe om hierdie lêer onafhanklik op te stel.
Waarom .htaccess nodig is
Die .htaccess-lêer dien as 'n soort "afstandbeheer" vir webontwikkelaars op Apache-bedieners. Dit bied gerieflike gereedskap om verskeie parameters aan te pas en die gedrag van 'n webwerf te bestuur. Wanneer direkte toegang tot die bediener se hoofkonfigurasielêers nie beskikbaar is nie (soos byvoorbeeld dikwels die geval is met virtuele hosting), word .htaccess 'n nuttige hulpmiddel om nodige veranderinge aan te bring.
Htaccess is dikwels geleë in die hoofmap van jou webwerf of in daardie dopgehou waar spesiale konfigurasie nodig is. As u byvoorbeeld WordPress gebruik, kan konfigurasie gedoen word deur die Yoast SEO-inprop, wat ons in die artikel oor bespreek het Stel tans robots.txt op. In ander gevalle is dit genoeg om na die vereiste vouer te gaan en die bestaande .htaccess-lêer te wysig, of dit te skep as dit nog nie geskep is nie.
Konfigureer die .htaccess-lêer
301 Herlei htaccess
'n 301-herleiding in die .htaccess-lêer kan vergelyk word met 'n permanente herleiding op 'n webwerf. Dit lig soekenjins en blaaiers in dat die bladsy nou permanent by 'n nuwe adres geleë is en stel voor dat boekmerke en indeksering opgedateer word. Sodanige herleiding word tipies gebruik wanneer 'n bladsy geskuif of uitgevee word om sy posisie in soekresultate te behou en besoekers na die nuwe ligging te herlei.
Om herleidings te aktiveer, moet jy die ooreenstemmende opdrag in die .htaccess-lêer aktiveer:
RewriteEngine on
Daarna kan u die eenvoudigste vorm van herleiding opstel:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
'n Soortgelyke aanstuur met behulp van die Herlei Permanent riglyn lyk soos volg:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Dit is die maklikste herleidingmetodes om op te stel. Kom ons kyk na 'n konfigurasie wat ander, meer gevorderde tipes herleidings met die mod_rewrite module:
<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>
'n 302 herleiding .htaccess, wat tydelike hervestiging aandui, word baie minder gereeld teëgekom. Hier is 'n voorbeeld van so 'n instelling:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Direktiewe foutdokument
Hierdie instelling laat jou toe om te beheer wat die gebruiker sien wanneer HTTP-foute op jou werf voorkom. In plaas van die standaardfoutboodskap, kan jy jou eie bladsy wys, wat meer insiggewend vir die besoeker sal wees en hulle sal help om te verstaan wat gebeur het. Volg eenvoudig hierdie sintaksis vir gebruik:
ErrorDocument <error_code> <URL_page>
Byvoorbeeld,
ErrorDocument 404 /errors/not_found.html
Beteken dat wanneer a 404 fout voorkom, die bladsy by /errors/not_found.html oopgemaak sal word. Absolute URL's word op soortgelyke wyse gespesifiseer:
ErrorDocument 500 http://example.com/errors/server_error.html
Hierdie voorbeeld dui die vertoning van die bediener_fout.html bladsy op http://example.com/errors/ in die geval van 'n 500 fout.
Toegang tot 'n webwerfgids weier
Die .htaccess-lêer het die opdrag Ontken van almal, wat help om toegang tot sekere vouers of lêers op jou webbediener te weier. Dit kan nuttig wees as jy private inligting of belangrike lêers van werfbesoekers wil versteek om datasekuriteit te verseker.
Om lysinskrywing te deaktiveer (bekyk alle beskikbare dopgehou), moet jy die reël byvoeg:
Options -Indexes
'n Voorbeeld van die blokkering van toegang tot 'n spesifieke gids lyk soos volg:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
Net so kan jy toegang tot 'n enkele lêer weier:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
Of vir 'n reeks lêers deur uitbreiding:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Blokkeer toegang deur IP
Om toegang deur IP in die .htaccess-lêer te blokkeer, is 'n metode wat jou toelaat om toegang tot jou webwerf vir spesifieke IP-adresse of hul groepe te beperk. Dit kan nuttig wees as jy toegang tot jou werf of sy spesifieke dele vir sekere mense of ongewenste bots wil verhoed.
Blokkering van 'n enkele IP-adres word gedoen met die opdrag:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
Blokkering van verskeie IP-adresse word op soortgelyke wyse gedoen deur die "Ontken van" lyn met die vereiste adresse.
Vir die blokkering van 'n reeks IP-adresse:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
Om toegang slegs vir spesifieke IP's toe te laat, voeg die kode by:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Vir 'n volledige weiering van toegang, gebruik die richtlijn Ontken van almal, en vir die blokkering van adresse deur masker, spesifiseer Weier vanaf 11.22.
waar, 11.22 is die IP-adres masker.
Blokkeer besoekers deur gebruiker-agent
Om gebruikers deur User-Agent in die .htaccess-lêer te blokkeer, is 'n metode om te beheer wie toegang tot jou webbediener kan kry, gebaseer op inligting oor die blaaier wat die besoeker gebruik. Die User-Agent-string bevat data oor die blaaier wat 'n persoon gebruik om met jou bediener te kommunikeer, en danksy hierdie inligting kan jy toegang vir sekere gebruikers beperk.
Die mees algemene manier om deur User-Agent te blokkeer, is om te gebruik 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>
In hierdie voorbeeld:
- RewriteCond %{HTTP_USER_AGENT} word gebruik om die User-Agent-string na te gaan.
- ^Bot1, ^Bot2, ^Bot3 is voorbeelde van User-Agent-stringe wat ons wil blokkeer. Die NC wysigers dui aan dat die vergelyking hoofletter-onsensitief moet wees.
- RewriteRule ^.*$ - [F,L] is van toepassing op die versoek indien aan enige van die RewriteCond-voorwaardes voldoen word. Dit stuur 'n antwoord met die 403 Verbode statuskode (F) en stop die verwerking van reëls (L).
Kas in htaccess
Die opstel van kasgeheue deur die .htaccess-lêer help om jou werf te bespoedig deur dit vinniger vir gebruikers te laat laai. Dit werk so: sekere lêers, soos beelde, CSS-style en JavaScript-skrifte, word in die gebruiker se blaaierkas gestoor na die eerste laai. Nou kan die blaaier hierdie lêers vanaf die kas gebruik, in plaas daarvan om dit van die bediener af te herlaai elke keer as die gebruiker 'n bladsy besoek. Dit verminder laaityd en verbeter werfwerkverrigting.
Oorweeg 'n voorbeeld:
# 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>
Vir hulpbronne wat gereeld opgedateer word, aan die ander kant, is dit nodig om kas te deaktiveer:
# 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>
Optimaliseer werfprestasie
Die mod_deflate en mod_gzip modules in Apache help om inligting saam te pers wat die bediener na gebruikers se toestelle stuur. Dit maak die lêers kleiner in grootte, wat op sy beurt die laai van bladsye versnel. Dit is egter belangrik om te onthou dat ondersteuning en konfigurasie van hierdie modules kan verskil na gelang van jou bediener.
Voorbeeld van die gebruik van die mod_deflate module:
<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>
Voorbeeld vir 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>
Ons het die mees gebruikte riglyne bespreek. Jy kan jouself vertroud maak met al die vermoëns van die lêer in die amptelike dokumentasie.
Hoe om die funksionaliteit van die .htaccess-lêer na te gaan
Om te kyk of jou .htaccess-lêer op die webwerf werk, kan jy die volgende stappe uitvoer:
- Verander doelbewus die .htaccess-lêer met 'n fout. In reaksie moet die bediener 'n fout gee. Hierdie metode wys of die lêer se werking oor die algemeen op die bediener toegepas word.
- Kontroleer die funksionaliteit van spesifieke veranderinge wat jy gemaak het. Maak byvoorbeeld 'n geringe aanpassing aan een van die parameters en assesseer die teenwoordigheid van veranderinge.
- Gaan die statuskode van die bladsy na as die veranderinge verband hou met die bediener se reaksie. Hoe om dit te doen, het ons voorheen in die artikel beskryf HTTP-foutkodes: 'n volledige lys van bedienerfoute.
- Verwys na die bedienerlogboeke. Hulle vertoon alle foute wat verband hou met die werking van die .htaccess-lêer.
- Voer toetse uit met behulp van aanlyndienste of nutsmiddels.
Dit is belangrik om te verstaan dat jy nie al die stappe gelyktydig hoef uit te voer om die funksionaliteit van die .htaccess-lêer na te gaan nie. Dit is genoeg om die mees geskikte metode uit die lys te kies en dit te gebruik.
Gevolgtrekking
Die opstel van die .htaccess-lêer is 'n belangrike stap in die optimalisering en beskerming van jou Apache-bediener. Ons het ondersoek hoe hierdie lêer help om herleidings te bestuur, inhoud saam te komprimeer en sekuriteit te verseker. Sodra jy bemeester het om met .htaccess te werk, kry jy 'n kragtige hulpmiddel om die werkverrigting en funksionaliteit van webwerwe te verbeter.