I den här artikeln kommer vi att utforska de grundläggande principerna för att använda .htaccess-filen, vilket är avgörande för att förbättra SEO. Den här filen säkerställer korrekt indexering av sidor av sökmotorer. Vi kommer att lära oss hur man hanterar omdirigeringar, konfigurerar säkerhet och ökar prestanda. Dessutom kommer vi att ge tips om hur du konfigurerar den här filen självständigt.
Varför .htaccess behövs
.htaccess-filen fungerar som en slags "fjärrkontroll" för webbutvecklare på Apache-servrar. Den erbjuder bekväma verktyg för att justera olika parametrar och hantera beteendet på en webbplats. När direkt åtkomst till serverns huvudsakliga konfigurationsfiler inte är tillgänglig (som ofta är fallet med till exempel virtuell värd) blir .htaccess ett användbart verktyg för att göra nödvändiga ändringar.
Htaccess finns ofta i rotmappen på din webbplats eller i de mappar där speciell konfiguration behövs. Om du till exempel använder WordPress kan konfigurationen göras genom Yoast SEO-plugin, som vi diskuterade i artikeln om Konfigurerar robots.txt. I andra fall räcker det att gå till önskad mapp och redigera den befintliga .htaccess-filen, eller skapa den om den inte har skapats ännu.
Konfigurera .htaccess-filen
301 Omdirigera htaccess
En 301-omdirigering i .htaccess-filen kan liknas vid en permanent omdirigering på en webbplats. Den informerar sökmotorer och webbläsare om att sidan nu är permanent placerad på en ny adress och föreslår uppdatering av bokmärken och indexering. Sådan omdirigering används vanligtvis när en sida flyttas eller tas bort för att bevara sin rankning i sökresultaten och omdirigera besökare till den nya platsen.
För att aktivera omdirigeringar måste du aktivera motsvarande kommando i .htaccess-filen:
RewriteEngine on
Efter det kan du konfigurera den enklaste formen av omdirigering:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
En liknande omdirigering med hjälp av Omdirigera Permanent direktivet ser ut så här:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Dessa är de enklaste omdirigeringsmetoderna att konfigurera. Låt oss överväga en konfiguration som använder andra, mer avancerade typer av omdirigeringar med mod_rewrite modul:
<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>
En 302-omdirigering .htaccess, som indikerar tillfällig omlokalisering, påträffas mycket mindre ofta. Här är ett exempel på en sådan inställning:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Direktiv ErrorDocument
Den här inställningen låter dig styra vad användaren ser när HTTP-fel uppstår på din webbplats. Istället för standardfelmeddelandet kan du visa din egen sida, som kommer att vara mer informativ för besökaren och hjälpa dem att förstå vad som hände. Följ bara denna syntax för användning:
ErrorDocument <error_code> <URL_page>
Till exempel,
ErrorDocument 404 /errors/not_found.html
Betyder att när en 404 fel uppstår, sidan på /errors/not_found.html kommer att öppnas. Absoluta webbadresser anges på liknande sätt:
ErrorDocument 500 http://example.com/errors/server_error.html
Detta exempel indikerar visningen av server_error.html sida vid http://example.com/errors/ i händelse av en 500 fel.
Neka åtkomst till en webbplatskatalog
.htaccess-filen har kommandot Neka från alla, vilket hjälper till att neka åtkomst till vissa mappar eller filer på din webbserver. Detta kan vara användbart om du vill dölja privat information eller viktiga filer från webbplatsbesökare för att säkerställa datasäkerhet.
För att inaktivera listning (visa alla tillgängliga kataloger), måste du lägga till raden:
Options -Indexes
Ett exempel på att blockera åtkomst till en specifik katalog ser ut så här:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
På samma sätt kan du neka åtkomst till en enda fil:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
Eller för en rad filer i förlängning:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Blockera åtkomst via IP
Blockering av åtkomst via IP i .htaccess-filen är en metod som låter dig begränsa åtkomsten till din webbplats för specifika IP-adresser eller deras grupper. Detta kan vara användbart om du vill förhindra åtkomst till din webbplats eller dess specifika delar för vissa personer eller oönskade bots.
Blockering av en enda IP-adress görs med kommandot:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
Blockering av flera IP-adresser görs på liknande sätt genom att duplicera "Neka från" rad med de nödvändiga adresserna.
För att blockera ett antal IP-adresser:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
För att tillåta åtkomst endast för specifika IP-adresser, lägg till koden:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Använd direktivet för fullständig nekad åtkomst Neka från alla, och för att blockera adresser med mask, specificera Neka från 11.22.
Var, 11.22 är IP-adressen mask.
Blockera besökare av User-Agent
Blockering av användare av User-Agent i .htaccess-filen är en metod för att kontrollera vem som kan komma åt din webbserver baserat på information om webbläsaren besökaren använder. User-Agent-strängen innehåller data om webbläsaren en person använder för att interagera med din server, och tack vare denna information kan du begränsa åtkomsten för vissa användare.
Det vanligaste sättet att blockera av User-Agent är att använda 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>
I detta exempel:
- RewriteCond %{HTTP_USER_AGENT} används för att kontrollera User-Agent-strängen.
- ^Bot1, ^Bot2, ^Bot3 är exempel på User-Agent-strängar som vi vill blockera. NC-modifierarna indikerar att jämförelsen bör vara skiftlägesokänslig.
- RewriteRule ^.*$ - [F,L] gäller för begäran om något av RewriteCond-villkoren är uppfyllda. Den skickar ett svar med 403 förbjuden statuskod (F) och stoppar bearbetningsregler (L).
Cachar i htaccess
Att konfigurera cachelagring genom .htaccess-filen hjälper till att snabba upp din webbplats genom att göra den laddas snabbare för användarna. Det fungerar så här: vissa filer, såsom bilder, CSS-stilar och JavaScript-skript, lagras i användarens webbläsarcache efter den första laddningen. Nu kan webbläsaren använda dessa filer från cachen, istället för att ladda om dem från servern varje gång användaren besöker en sida. Detta minskar laddningstiden och förbättrar webbplatsens prestanda.
Tänk på ett exempel:
# 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>
För resurser som uppdateras ofta är det å andra sidan nödvändigt att inaktivera cachelagring:
# 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>
Optimera webbplatsens prestanda
Ocuco-landskapet mod_deflate och mod_gzip moduler i Apache hjälper till att komprimera information som servern skickar till användarnas enheter. Detta gör filerna mindre i storlek, vilket i sin tur snabbar upp sidladdningen. Det är dock viktigt att komma ihåg att stöd och konfiguration av dessa moduler kan variera beroende på din server.
Exempel på användning av mod_deflate modul:
<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>
Exempel fö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>
Vi diskuterade de vanligaste direktiven. Du kan bekanta dig med alla funktioner i filen i officiell dokumentation.
Så här kontrollerar du funktionen hos .htaccess-filen
För att kontrollera om din .htaccess-fil fungerar på webbplatsen kan du utföra följande steg:
- Ändra .htaccess-filen avsiktligt med ett fel. Som svar bör servern ge ett felmeddelande. Den här metoden visar om filens operation generellt tillämpas på servern.
- Kontrollera funktionen hos specifika ändringar du har gjort. Gör till exempel en mindre justering av en av parametrarna och bedöm förekomsten av ändringar.
- Kontrollera sidans statuskod om ändringarna är relaterade till serverns svar. Hur man gör detta har vi beskrivit tidigare i artikeln HTTP-felkoder: en komplett lista över serverfel.
- Se serverloggarna. De visar alla fel relaterade till driften av .htaccess-filen.
- Genomför tester med hjälp av onlinetjänster eller verktyg.
Det är viktigt att förstå att för att kontrollera funktionen hos .htaccess-filen behöver du inte utföra alla steg på en gång. Det räcker att välja den mest lämpliga metoden från listan och använda den.
Slutsats
Att konfigurera .htaccess-filen är ett viktigt steg för att optimera och skydda din Apache-server. Vi har undersökt hur den här filen hjälper till att hantera omdirigeringar, komprimera innehåll och säkerställa säkerhet. När du behärskar att arbeta med .htaccess får du ett kraftfullt verktyg för att förbättra prestandan och funktionaliteten på webbplatser.