Konfigurera regler och omdirigeringar med .htaccess

Filen .htaccess är en konfigurationsfil på katalognivå som stöds av Apache-webbservern. Den gör det möjligt att ändra webbserverns inställningar (såsom att aktivera eller inaktivera funktioner) för ett specifikt konto utan att påverka den globala serverkonfigurationen.

Den här filen tillämpar sina inställningar på hela katalogen där den finns, inklusive alla filer och undermappar i den katalogen. Alla ändringar som görs i filen .htaccess tillämpas omedelbart, utan att servern behöver startas om.

Hur du hittar .htaccess-filen

För att hitta filen .htaccess:  

1. Gå till ditt Spaceship-konto >> välj Hosting Manager i Launchpad >> Hantera bredvid ett webbhotellspaket >> Filer och lagring >> Hantera filer nära webbplatsnamnet.

2. Du kommer att omdirigeras till domänens rotmapp. 

3.  Om du behöver redigera filen .htaccess för domänen, leta upp filen .htaccess i domänens rotmapp, högerklicka på den och välj alternativet Redigera :


OBS! Kontrollera att "Visa dolda filer (dotfiles)" är aktiverat i menyn Inställningar:


4. Om det inte finns någon .htaccess-fil i Filhanteraren kan du skapa en ny med knappen + Fil:


5. Du är redo att lägga till dina egna konfigurationsregler och spara dem.
   

Lista över vanliga .htaccess-regler

Blockering 

Den här metoden gör det möjligt att blockera användare baserat på deras IP-adress eller domän. Det är särskilt användbart för att begränsa åtkomst för oönskade besökare eller för att begränsa åtkomst till specifika delar av din webbplats, såsom administrationsområdet, endast för ägaren.

För att implementera specifika blockeringsregler, skapa en .htaccess-fil med följande innehåll:

(För att tillåta åtkomst för alla andra och blockera användare med en X.X.X.X IP-adress)

<RequireAll>

Require all granted

Require not ip X.X.X.X

</RequireAll>

(För att blockera alla besökare utom de specifika IP-adresserna X.X.X.X och Y.Y.Y.Y)

<RequireAll>

Require all denied

Require ip X.X.X.X

Require ip Y.Y.Y.Y

</RequireAll>

OBS! Använd inte de föråldrade direktiven Allow, Deny och Order tillsammans med det nya direktivet Require .

Mod_Rewrite (omdirigeringsregler)

Mod_Rewrite definierar hur webbsidor och URL:er presenteras för besökare.

Som standard mappar Mod_Rewrite en URL till en motsvarande sökväg i filsystemet. Den kan dock även omdirigera en URL till en annan.

Innan du ställer in en omdirigering är det viktigt att välja den typ av omdirigering som bäst passar dina behov:

  • Permanent omdirigering (301): Denna omdirigering skickar statuskoden 301, vilket indikerar att sidan har flyttats permanent. Den cachas i webbläsaren och signalerar till sökmotorer och användaragenter att uppdatera URL:en i sina databaser. Detta är den vanligaste typen av omdirigering.

  • Tillfällig omdirigering (302): Denna omdirigering skickar statuskoden 302, vilket indikerar att flytten är tillfällig. Webbläsaren kommer inte att cacha denna omdirigering, och även om besökare och sökmotorer omdirigeras kommer den ursprungliga sidan att fortsätta indexeras. Denna typ av omdirigering rekommenderas om du inte är säker på att URL:en inte kommer att ändras i framtiden.

Nedan finns en lista över några av de vanligaste och mest användbara omdirigeringarna som kan konfigureras via filen .htaccess:

Permanent omdirigering från example1.com till example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]

Tillfällig omdirigering från exampledomain1.com till exampledomain2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]

OBS: Nedan finns exempel på permanenta omdirigeringar. Tillfälliga omdirigeringar kan definieras genom att ersätta [R=301,L] med [R=302,L] i slutet av koden (där det behövs).

Omdirigera från example1.com/subfolder till example2.com

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example1\.com$

RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]

Omdirigera från HTTP till HTTPS för example.com

RewriteEngine On

RewriteCond %{HTTPS} !=on

RewriteRule .* https://example.com%{REQUEST_URI} [R,L]

eller

RewriteCond %{SERVER_PORT} 80

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]

RewriteCond %{HTTP_HOST} ^www\.example\.com$

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

Omdirigera från icke-WWW till WWW

  • för vilken domän som helst, .htaccess träder i kraft:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  • för en angiven domän:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Omdirigera från WWW till icke-WWW

  • för vilken domän som helst träder .htaccess i kraft:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

  • för en angiven domän:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]

RewriteRule (.*) http://example.com/$1 [R=301,L]

Omdirigera alla sidor på example.com till motsvarande sidor på domain.com

RedirectMatch 301 ^/(.*)$ http://domain.com/$1

OBS: Alla sidnamn måste matcha på båda domänerna, annars kommer omdirigeringen att resultera i ett "Sidan hittades inte"-meddelande.

Omdirigera en sida till en ny URL

Redirect 301 /old_page.html http://www.domain.com/new_page.html

OBS: Denna teknik kan vara användbar för att omdirigera en borttagen sida till ett 404-fel eller för att göra SEO-justeringar efter att innehållsreferenser har uppdaterats.

Auktorisering/autentisering 

Den här typen av regel definierar säkerhetsbegränsningar för en katalog eller undermapp. Du kan lösenordsskydda kataloger så att alla besökare som försöker komma åt dem uppmanas att ange användarnamn och lösenord.

Så här ställer du in detta skydd:  

1. Skapa den katalog du vill skydda i mappen /home/cpanel_user/.htpasswds/ (t.ex. för domain.com/test är sökvägen .htpasswds/domain.com/test/).

2. Skapa en passwd-fil i denna katalog och lägg till hashade inloggningsuppgifter med en onlinegenerator.

3. Lägg till följande direktiv i filen .htaccess:

AuthType Basic

AuthName "Directory Name"

AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"

require valid-user

Anpassade felsidor

Den här funktionen gör det möjligt att skapa personliga felsidor för din webbplats. Det är ett användbart alternativ eftersom det låter dig visa besökare ett felmeddelande som matchar din webbplats tema om det finns trasiga URL:er. Detta hjälper till att undvika att visa standardfelet '404 File Not Found' och istället returnera en anpassad felsida med instruktioner för att guida användare tillbaka till ditt webbplatsinnehåll och undvika förvirring.

För att skapa en anpassad felsida, lägg till följande text i en .htaccess-fil:

ErrorDocument 404 /404.html

Den här raden instruerar Apache-webbservern att ladda en 404.html-fil som finns i domänens rotkatalog när ett 404-fel (File Not Found) uppstår.

OBS! För att skapa anpassade felsidor för andra fel (t.ex. 403 eller 500), byt helt enkelt ut 404 mot motsvarande felkod och /404.html mot sökvägen till din anpassade felsida.

Inaktivera befintliga .htaccess-regler

Om du tillfälligt behöver inaktivera några av de befintliga reglerna, till exempel för teständamål, kan du enkelt kommentera bort dem. För att göra detta, lägg bara till ett nummertecken (#) i början av raden.

Som alternativ kan du inaktivera en enskild rad eller ett block av rader genom att markera dem och använda kortkommandot Ctrl + / .

En giltig e-postadress krävs