Yn dit artikel sille wy de fûnemintele prinsipes ûndersykje fan it brûken fan it .htaccess-bestân, dat krúsjaal is foar it ferbetterjen fan SEO. Dit bestân soarget foar goede yndeksearring fan siden troch sykmasines. Wy sille leare hoe't jo trochferwizings kinne beheare, feiligens konfigurearje en prestaasjes ferbetterje. Derneist sille wy tips jaan oer hoe't jo dit bestân selsstannich konfigurearje.
Wêrom .htaccess is nedich
It .htaccess-bestân fungearret as in soarte fan "ôfstânskontrôle" foar webûntwikkelders op Apache-tsjinners. It biedt handige ark foar it oanpassen fan ferskate parameters en it behearen fan it gedrach fan in webside. As direkte tagong ta de haadkonfiguraasjetriemmen fan 'e tsjinner net beskikber is (lykas bygelyks faak it gefal is mei firtuele hosting), wurdt .htaccess in nuttich helpmiddel foar it meitsjen fan nedige wizigingen.
Htaccess leit faak yn 'e root-map fan jo side of yn dy mappen wêr't spesjale konfiguraasje nedich is. As jo bygelyks WordPress brûke, kin konfiguraasje dien wurde fia de Yoast SEO-plugin, dy't wy besprutsen yn it artikel oer It ynstellen fan robots.txt. Yn oare gefallen is it genôch om nei de fereaske map te gean en it besteande .htaccess-bestân te bewurkjen, of it oan te meitsjen as it noch net oanmakke is.
It konfigurearjen fan it .htaccess-bestân
301 Omliede htaccess
In 301 trochferwizing yn it .htaccess-bestân kin fergelike wurde mei in permaninte trochferwizing op in webside. It ynformearret sykmasines en browsers dat de side no permanint leit op in nij adres en suggerearret it bywurkjen fan blêdwizers en yndeksearjen. Sokke omlieding wurdt typysk brûkt as in side wurdt ferpleatst of wiske om syn ranglist yn sykresultaten te behâlden en besikers nei de nije lokaasje troch te lieden.
Om trochferwizings te aktivearjen, moatte jo it oerienkommende kommando yn it .htaccess-bestân ynskeakelje:
RewriteEngine on
Dêrnei kinne jo de ienfâldichste foarm fan trochferwizing ynstelle:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
In ferlykbere trochferwizing mei de RedirectPermanent rjochtline sjocht der sa út:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Dit binne de maklikste metoaden om trochferwizings te konfigurearjen. Lit ús beskôgje in konfiguraasje dy't brûkt oare, mear avansearre soarten omliedings mei de 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>
In 302 trochferwizing .htaccess, wat oanjout op tydlike ferhuzing, wurdt folle minder faak tsjinkaam. Hjir is in foarbyld fan sa'n ynstelling:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Direksje ErrorDocument
Dizze ynstelling lit jo kontrolearje wat de brûker sjocht as HTTP-flaters foarkomme op jo side. Ynstee fan it standert flaterberjocht kinne jo jo eigen side sjen litte, dy't mear ynformatyf sil wêze foar de besiker en har helpe te begripen wat der bard is. Folgje gewoan dizze syntaksis foar gebrûk:
ErrorDocument <error_code> <URL_page>
Bygelyks,
ErrorDocument 404 /errors/not_found.html
Betsjut dat wannear a 404 flater optreedt, de side by /errors/not_found.html sil iepene wurde. Absolute URL's wurde op deselde manier spesifisearre:
ErrorDocument 500 http://example.com/errors/server_error.html
Dit foarbyld jout de werjefte fan de server_error.html pagina by http://example.com/errors/ yn it gefal fan in 500 fersin.
It wegerjen fan tagong ta in Site Directory
It .htaccess-bestân hat it kommando Wegearje fan alles, dy't helpt te wegerjen tagong ta bepaalde mappen of bestannen op jo webserver. Dit kin handich wêze as jo priveeynformaasje of wichtige bestannen fan sidebesikers ferbergje wolle om gegevensfeiligens te garandearjen.
Om list út te skeakeljen (alle beskikbere mappen besjen), moatte jo de rigel taheakje:
Options -Indexes
In foarbyld fan blokkearjen fan tagong ta in spesifike map sjocht der sa út:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
Op deselde manier kinne jo tagong wegerje ta ien inkeld bestân:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
Of foar in ferskaat oan bestannen troch útwreiding:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Blokkearje tagong troch IP
It blokkearjen fan tagong troch IP yn it .htaccess-bestân is in metoade wêrmei jo tagong kinne beheine ta jo webside foar spesifike IP-adressen of har groepen. Dit kin handich wêze as jo tagong ta jo side of har spesifike dielen foar bepaalde minsken of net winske bots wolle foarkomme.
It blokkearjen fan in inkeld IP-adres wurdt dien mei it kommando:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
It blokkearjen fan ferskate IP-adressen wurdt op deselde manier dien troch it duplikearjen fan de "Wegerje fan" line mei de fereaske adressen.
Foar it blokkearjen fan in berik fan IP-adressen:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
Om tagong allinich ta te stean foar spesifike IP's, foegje de koade ta:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Foar in folsleine ûntkenning fan tagong, brûk de rjochtline Wegearje fan alles, en foar blokkearjen fan adressen troch masker, spesifisearje Wegerje fan 11.22.
Wêr, 11.22 is it IP-adres masker.
Besikers blokkearje troch User-Agent
It blokkearjen fan brûkers troch User-Agent yn it .htaccess-bestân is in metoade om te kontrolearjen wa't tagong kin ta jo webserver basearre op ynformaasje oer de browser dy't de besiker brûkt. De User-Agent-string befettet gegevens oer de browser dy't in persoan brûkt om te ynteraksje mei jo server, en troch dizze ynformaasje kinne jo tagong beheine foar bepaalde brûkers.
De meast foarkommende manier om te blokkearjen troch User-Agent is te brûken 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>
Yn dit foarbyld:
- RewriteCond %{HTTP_USER_AGENT} wurdt brûkt om de User-Agent-string te kontrolearjen.
- ^Bot1, ^Bot2, ^Bot3 binne foarbylden fan User-Agent-strings dy't wy wolle blokkearje. De NC-modifiers jouwe oan dat de fergeliking net-gefoelich wêze moat.
- RewriteRule ^.*$ - [F,L] jildt foar it fersyk as ien fan de RewriteCond betingsten foldien wurdt. It stjoert in antwurd mei de 403 Forbidden status koade (F) en stopet ferwurkjen regels (L).
Caching yn htaccess
It konfigurearjen fan caching fia it .htaccess-bestân helpt jo side te fersnellen troch it makliker te meitsjen foar brûkers. It wurket sa: bepaalde bestannen, lykas ôfbyldings, CSS-stilen en JavaScript-skripts, wurde opslein yn 'e browser-cache fan 'e brûker nei de earste lading. No kin de blêder dizze bestannen fan 'e cache brûke, ynstee fan se opnij te laden fan' e server elke kear as de brûker in side besykje. Dit ferminderet de laden tiid en ferbetteret sideprestaasjes.
Beskôgje in foarbyld:
# 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>
Foar boarnen dy't faak bywurke wurde, oan 'e oare kant, is it nedich om caching út te skeakeljen:
# 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>
Optimalisearjen fan siteprestaasjes
De mod_deflate en mod_gzip modules yn Apache helpe om ynformaasje te komprimearjen dy't de tsjinner nei de apparaten fan brûkers stjoert. Dit makket de bestannen lytser yn grutte, wat op syn beurt it laden fan side fersnelt. It is lykwols wichtich om te ûnthâlden dat stipe en konfiguraasje fan dizze modules kinne ferskille ôfhinklik fan jo tsjinner.
Foarbyld fan it brûken fan de 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>
Foarbyld foar 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>
Wy besprutsen de meast brûkte rjochtlinen. Jo kinne josels fertroud meitsje mei alle mooglikheden fan it bestân yn 'e offisjele dokumintaasje.
Hoe kinne jo de funksjonaliteit fan it .htaccess-bestân kontrolearje
Om te kontrolearjen oft jo .htaccess-bestân op 'e side wurket, kinne jo de folgjende stappen útfiere:
- Feroarje mei opsetsin de .htaccess-bestân mei in flater. As antwurd moat de tsjinner in flater jaan. Dizze metoade lit sjen oft de operaasje fan it bestân algemien tapast wurdt op de tsjinner.
- Kontrolearje de funksjonaliteit fan spesifike wizigingen dy't jo hawwe makke. Meitsje bygelyks in lytse oanpassing oan ien fan 'e parameters en beoardielje de oanwêzigens fan feroaringen.
- Kontrolearje de statuskoade fan 'e side as de wizigingen relatearre binne oan it antwurd fan de tsjinner. Hoe te dwaan dit, wy earder beskreaun yn it artikel HTTP-flaterkoades: in folsleine list mei serverflaters.
- Ferwize nei de tsjinner logs. Se litte alle flaters sjen yn ferbân mei de wurking fan it .htaccess-bestân.
- Fiere testen mei help fan online tsjinsten of ark.
It is wichtich om te begripen dat om de funksjonaliteit fan it .htaccess-bestân te kontrolearjen, jo net alle stappen tagelyk moatte útfiere. It is genôch om de meast geskikte metoade út 'e list te kiezen en it te brûken.
Konklúzje
It konfigurearjen fan it .htaccess-bestân is in wichtige stap yn it optimalisearjen en beskermjen fan jo Apache-tsjinner. Wy hawwe ûndersocht hoe't dit bestân helpt om trochferwizings te behearjen, ynhâld te komprimearjen en feiligens te garandearjen. Sadree't jo master wurkje mei .htaccess, krije jo in krêftich ark foar it ferbetterjen fan de prestaasjes en funksjonaliteit fan websiden.