En aquest article, explorarem els principis fonamentals de l'ús del fitxer .htaccess, que és crucial per millorar el SEO. Aquest fitxer garanteix una indexació adequada de les pàgines pels motors de cerca. Aprendrem a gestionar les redireccions, configurar la seguretat i augmentar el rendiment. A més, oferirem consells sobre com configurar aquest fitxer de manera independent.
Per què es necessita .htaccess
El fitxer .htaccess actua com una mena de "control remot" per als desenvolupadors web als servidors Apache. Ofereix eines convenients per ajustar diversos paràmetres i gestionar el comportament d'un lloc web. Quan l'accés directe als fitxers de configuració principals del servidor no està disponible (com passa sovint amb l'allotjament virtual, per exemple), .htaccess es converteix en una eina útil per fer els canvis necessaris.
Htaccess sovint es troba a la carpeta arrel del vostre lloc o en aquelles carpetes on es necessita una configuració especial. Per exemple, si utilitzeu WordPress, la configuració es pot fer mitjançant el connector Yoast SEO, que hem comentat a l'article Configuració de robots.txt. En altres casos, n'hi ha prou amb anar a la carpeta necessària i editar el fitxer .htaccess existent, o crear-lo si encara no s'ha creat.
Configuració del fitxer .htaccess
301 Redirigeix htaccess
Una redirecció 301 al fitxer .htaccess es pot assimilar a una redirecció permanent en un lloc web. Informa als motors de cerca i navegadors que ara la pàgina es troba permanentment en una adreça nova i suggereix actualitzar les adreces d'interès i la indexació. Aquesta redirecció s'utilitza normalment quan es mou o s'elimina una pàgina per preservar la seva classificació als resultats de la cerca i redirigir els visitants a la nova ubicació.
Per activar les redireccions, heu d'activar l'ordre corresponent al fitxer .htaccess:
RewriteEngine on
Després d'això, podeu configurar la forma més senzilla de redirecció:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect 301 /old-page.html /new-page.html
</IfModule>
Una redirecció similar utilitzant el RedirectPermanent La directiva té aquest aspecte:
<IfModule mod_rewrite.c>
RewriteEngine On
Redirect permanent /old-page.html http://new-domain.ru/new-page.html
</IfModule>
Aquests són els mètodes de redirecció més fàcils de configurar. Considerem una configuració que utilitza altres tipus de redireccions més avançats amb el mod_rewrite mòdul:
<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>
Un .htaccess de redirecció 302, que indica una reubicació temporal, es troba amb molta menys freqüència. Aquí teniu un exemple d'aquesta configuració:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^old-page.html$ /new-page.html [R=302,L]
</IfModule>
Document d'error de directiva
Aquesta configuració us permet controlar què veu l'usuari quan es produeixen errors HTTP al vostre lloc. En lloc del missatge d'error estàndard, podeu mostrar la vostra pròpia pàgina, que serà més informativa per al visitant i l'ajudarà a entendre què ha passat. Simplement seguiu aquesta sintaxi per utilitzar-la:
ErrorDocument <error_code> <URL_page>
Per exemple,
ErrorDocument 404 /errors/not_found.html
Vol dir que quan a 404 es produeix un error, la pàgina a /errors/not_found.html s'obrirà. Els URL absoluts s'especifiquen de la mateixa manera:
ErrorDocument 500 http://example.com/errors/server_error.html
Aquest exemple indica la visualització del server_error.html a la pàgina http://example.com/errors/ en cas de 500 error
Denegació d'accés a un directori de llocs
El fitxer .htaccess té l'ordre Negar de tots, que ajuda a denegar l'accés a determinades carpetes o fitxers del vostre servidor web. Això pot ser útil si voleu amagar informació privada o fitxers importants dels visitants del lloc per garantir la seguretat de les dades.
Per desactivar la llista (veient tots els directoris disponibles), heu d'afegir la línia:
Options -Indexes
Un exemple de bloqueig de l'accés a un directori específic és el següent:
<Directory /path_to_your_directory>
Order Deny,Allow
Deny from all
</Directory>
De la mateixa manera, podeu denegar l'accés a un sol fitxer:
<Files "file.php">
Order Deny,Allow
Deny from all
</Files>
O per a una sèrie de fitxers per extensió:
<FilesMatch "\.(txt|log|bak)$"> # Select the desired extensions, in the example: txt, log, bak
Order Deny,Allow
Deny from all
</FilesMatch>
Bloqueig d'accés per IP
Bloquejar l'accés per IP al fitxer .htaccess és un mètode que us permet restringir l'accés al vostre lloc web per a adreces IP específiques o els seus grups. Això pot ser útil si voleu impedir l'accés al vostre lloc o a les seves parts específiques per a determinades persones o robots no desitjats.
El bloqueig d'una única adreça IP es fa amb l'ordre:
Order Deny,Allow
Allow from all
Deny from 11.22.33.44
El bloqueig de diverses adreces IP es fa de la mateixa manera duplicant el "Negar de" línia amb les adreces requerides.
Per bloquejar un rang d'adreces IP:
Order Deny,Allow
Allow from all
Deny from 11.11.11.11/24
Per permetre l'accés només per a IP específiques, afegiu el codi:
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Per a una denegació completa d'accés, utilitzeu la directiva Negar de tots, i per bloquejar adreces per màscara, especifiqueu Denegació a partir del 11.22/XNUMX.
On, 11.22 és l'adreça IP màscara.
Bloqueig de visitants per User-Agent
Bloquejar usuaris per User-Agent al fitxer .htaccess és un mètode per controlar qui pot accedir al vostre servidor web en funció de la informació sobre el navegador que utilitza el visitant. La cadena User-Agent conté dades sobre el navegador que utilitza una persona per interactuar amb el vostre servidor i, gràcies a aquesta informació, podeu restringir l'accés a determinats usuaris.
La manera més comuna de bloquejar per User-Agent és utilitzar 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>
En aquest exemple:
- RewriteCond %{HTTP_USER_AGENT} s'utilitza per comprovar la cadena User-Agent.
- ^Bot1, ^Bot2, ^Bot3 són exemples de cadenes d'agent d'usuari que volem bloquejar. Els modificadors NC indiquen que la comparació no hauria de distingir entre majúscules i minúscules.
- RewriteRule ^.*$ - [F,L] s'aplica a la sol·licitud si es compleix alguna de les condicions de RewriteCond. Envia una resposta amb el codi d'estat 403 Prohibit (F) i atura el processament de les regles (L).
Emmagatzematge a la memòria cau a htaccess
La configuració de la memòria cau mitjançant el fitxer .htaccess ajuda a accelerar el vostre lloc fent que es carregui més ràpidament per als usuaris. Funciona així: determinats fitxers, com ara imatges, estils CSS i scripts JavaScript, s'emmagatzemen a la memòria cau del navegador de l'usuari després de la primera càrrega. Ara el navegador pot utilitzar aquests fitxers des de la memòria cau, en lloc de tornar-los a carregar des del servidor cada vegada que l'usuari visita una pàgina. Això redueix el temps de càrrega i millora el rendiment del lloc.
Considereu un exemple:
# 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>
Per als recursos que s'actualitzen amb freqüència, en canvi, cal desactivar la memòria cau:
# 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>
Optimització del rendiment del lloc
La mod_deflate i mod_gzip Els mòduls d'Apache ajuden a comprimir la informació que el servidor envia als dispositius dels usuaris. Això fa que els fitxers siguin més petits, la qual cosa al seu torn accelera la càrrega de la pàgina. Tanmateix, és important recordar que el suport i la configuració d'aquests mòduls poden variar segons el vostre servidor.
Exemple d'ús del mod_deflate mòdul:
<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>
Exemple per 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>
Hem parlat de les directives més utilitzades. Podeu familiaritzar-vos amb totes les capacitats del fitxer al fitxer documentació oficial.
Com comprovar la funcionalitat del fitxer .htaccess
Per comprovar si el vostre fitxer .htaccess funciona al lloc, podeu realitzar els passos següents:
- Canvieu intencionadament el fitxer .htaccess amb un error. En resposta, el servidor hauria de donar un error. Aquest mètode mostra si l'operació del fitxer s'aplica generalment al servidor.
- Comproveu la funcionalitat dels canvis específics que heu fet. Per exemple, feu un petit ajust a un dels paràmetres i avalueu la presència de canvis.
- Comproveu el codi d'estat de la pàgina si els canvis estan relacionats amb la resposta del servidor. Com fer-ho, hem descrit anteriorment a l'article Codis d'error HTTP: una llista completa d'errors del servidor.
- Consulteu els registres del servidor. Mostra tots els errors relacionats amb el funcionament del fitxer .htaccess.
- Realitzar proves utilitzant serveis o eines en línia.
És important entendre que per comprovar la funcionalitat del fitxer .htaccess, no cal que feu tots els passos alhora. N'hi ha prou amb triar el mètode més adequat de la llista i utilitzar-lo.
Conclusió
La configuració del fitxer .htaccess és un pas important per optimitzar i protegir el vostre servidor Apache. Hem explorat com aquest fitxer ajuda a gestionar les redireccions, comprimir contingut i garantir la seguretat. Un cop domineu el treball amb .htaccess, obtindreu una eina potent per millorar el rendiment i la funcionalitat dels llocs web.