Codis útils .htaccess per a WordPress

| Actualitzat 2020.03.20

Codis útils .htaccess per a llocs web WordPress

Codis útils .htaccess per a llocs web WordPress

Avui en dia, la majoria d’ofertes d’allotjament web són per al servidor web Apache. És una solució molt més barata en comparació amb la plataforma IIS en Windows. Apache és ben conegut per la seva capacitat per utilitzar .htaccess, on podem controlar determinats aspectes del nostre lloc web, incloent-hi el rendiment.

Un dels més populars és redirigir qualsevol domini sense www a el domini amb www .. en aquest exemple, si intentes tenir accés a https://www.webempresa.com, el servidor et redirigirà a https://www.webempresa.com. Això pot garantir que el PageRank ™ no es divideixi en dos. Per a la teva informació, Google tracta a aquests dos dominis com diferents. Heus aquí una guia dels codis .htaccess que pots utilitzar en els teus llocs web.

Taula de continguts

Què és l’arxiu .htaccess?

El primer que has de saber és què és el Htacces (Hypertext Access o Accés a Hipertext). Es tracta d’un arxiu de configuració per configurar les polítiques d’accés als directoris i arxius de la web per realitzar configuracions com ara les redireccions.

És un simple arxiu de text que pots editar amb el Bloc de notes o qualsevol editor i pujar-lo a l’arrel del tema o treballar-los de diferents formes com veurem:

l’arxiu htaccess és molt delicat, qualsevol error en la seva edició pot provocar errors en el funcionament del web

En aquest article t’explico on està arxiu htaccess.

Redirigir l’URL sense www a la direcció amb www

Com expliqui anteriorment, el següent codi redirigirà de la URL del teu domini sense àlies www a la URL del teu domini amb àlies www.

RewriteEngine On RewriteCond %{HTTP_HOST} ^webempresa.com RewriteRule ^(.*)$ https://www.webempresa.com/$1 

Abans d’avançar, segurament t’hauràs fet a tu mateix una pregunta ¿on localitzo l’arxiu .htaccess?

l’arxiu .htaccess és un arxiu “ocult” (el. davant del nom indica que es tracta d’arxiu o culte).

Per poder visualitzar-has de:

  1. Accedeix al teu cPanel.
  2. Aneu a l’Administrador d’Arxius (t’obre un diàleg i una de les opcions és “Mostra fitxers ocults” que ha d’estar seleccionada).
  3. Navega a la carpeta / public_html.
  4. Aquí podràs localitzar l’arxiu .htaccess (no confondre amb htaccess.txt que si és visible).

Ara que ja ho tens clar, seguim coneixent altres codis que pots utilitzar en el teu arxiu .htaccess.

Com canviar de la URL amb àlies www a la URL sense àlies www

I el següent codi ha de redirigir a l’usuari de l’adreça URL del teu domini amb www a l’adreça URL sense www.

RewriteEngine OnRewriteCond %{HTTP_HOST} ^www.webempresa.com RewriteRule ^(.*)$ https://www.webempresa.com/$1 

redirigir sempre a l’àlies www qualsevol domini apuntat

Aquest codi és útil per redirigir un o diversos dominis perquè treballin amb l’àlies www usant comodins www. *. *:

RewriteCond %{REQUEST_URI} !^/robots.txt$ RewriteCond %{HTTP_HOST} !^www.+.{2,6} RewriteCond %{HTTP_HOST} (+.{2,6})$ RewriteRule ^/(.*)$ http://%1/$1 

Si tenim diversos dominis gestionat en el compte de Hos ting, per no haver de crear una redirecció 301 d’un en un cada domini, una altra forma de fer-ho és redirigint tots els .tld dels dominis utilitzats “sense àlies www” a dominis “amb àlies www”:

RewriteEngine OnRewriteCond %{HTTP_HOST} !^www.RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 

Redirigir uRL d’una carpeta a una altra carpeta de el mateix domini

Una Redirecció 301 útil quan cometem l’error d’indicar una carpeta nomenada de manera incorrecta o que va ser renombrada posteriorment és la següent, de manera que puguem redireccionar peticions que vagin a / carpeta1 / perquè aterrin a / carpeta2 /

s’han afegir aquest tipus de redireccions a l’arxiu .htaccess, a la part més alta de la mateixa possible:

Options +FollowSymLinks RewriteEngine On RewriteRule ^carpeta1/(.*)$ http://dominio.com/carpeta2/$1 

Redirigir un domini a un altre domini

Per evitar que les adreces es vegin afectades a l’canviar d’un domini a un altre domini és convenient que facis la següent redirecció a .htaccess de manera que vols vinguin d’enllaços de l’antiga uRL aterrin a la nova url de for ma correcta, el contrari afectaria el posicionament i hi hauria un augment de pèrdua de trànsit.

<IfModule mod_rewrite.c>RewriteEngine On RewriteCond %{HTTP_HOST} ^anteriordominio.com$ RewriteCond %{HTTP_HOST} ^www.anteriordominio.com$ RewriteRule (.*)$ http://www.nuevodominio.com/$1 </IfModule>

Redirigir de l’localhost (el teu PC) a un domini remot

Amb aquesta regla pots redireccionar de localhost (el teu ordinador) al teu lloc web remot (Hosting):

RewriteEngine On RewriteCond %{HTTP_HOST} ^localhost$ RewriteRule (.*)$ http://www.dominio.com/$1 

Si només vols redireccionar un subdomini concret pots crear la regla en el teu .htaccess:

RewriteEngine On RewriteCond %{HTTP_HOST} ^subdominio.dominio.com$ RewriteRule (.*)$ http://www.nuevodominio.com/$1 

Una forma més senzilla de fer això amb comodins és creant una regla a .htaccess com la següent:

Redirect 301 (.*)$ http://www.nuevodominio.com/$1

Impedir llistar el directori

Si tens una carpeta a la web utilitzada per emmagatzemar arxius com els eBooks, programari legal, etc., Si la carpeta no té arxiu index.html, els visitants poden veure tots els fitxers dins de la carpeta sense problemes.

En aquest cas pots utilitzar el codi següent per evitar que això passi.

Options -Indexes

Ordre d’execució d’arxius

Si tens tant l’arxiu index.html com l’arxiu index.php a la carpeta / public_html, l’arxiu index .html té major prioritat i s’executarà en primer lloc. Tot i que la majoria d’scripts web utilitzen l’arxiu index.php com a punt de partida.

Si es pot eliminar el fitxer index.html, se soluciona el problema, encara que no sempre és així i en aquests casos hi ha una millor solució que és utilitzar el següent codi per donar prioritat a l’arxiu index.php en comptes d’index.html.

DirectoryIndex index.php index.html

Comprimir arxius CSS, JavaScript, XML i text

el següent codi està dissenyat per comprimir el codi de sortida CSS, JavaScript, XML i de text abans de ser mostrat en el navegador. La idea bàsica és estalviar temps en la càrrega i no consumir tant ample de banda.

<ifmodule>AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript</ifmodule>

Emmagatzematge en memòria cau d’imatges

Cada vegada que rebem visites a la web, el lloc web obté tots els arxius necessaris, com ara arxius CSS i JavaScript, així com fotos i imatges per poder mostrar-la. Podem fer servir el codi de sota per a gestionar els arxius de memòria cau, i que quan un visitant torni a visitar-nos per segona vegada, el servidor carregui l’arxiu de la memòria cau del que accelerarà el temps de càrrega lloc web.

<IfModule mod_expires.c>ExpiresActive OnExpiresByType image/gif A432000ExpiresByType image/jpg A432000ExpiresByType image/jpeg A432000ExpiresByType image/png A432000ExpiresByType image/ico A432000ExpiresByType image/bmp A432000ExpiresByType text/css A432000ExpiresByType text/javascript A432000ExpiresByType application/javascript A432000ExpiresByType application/x-javascript A432000</ifmodule>

El codi anterior guarda memòria cau dels arxius durant cinc dies o 432.000 segons. Pots canviar el període d’emmagatzematge en memòria cau, assegurant d’utilitzar el valor expressat en segons.

Protegir el fitxer .htaccess

El següent codi evita que el teu arxiu .htaccess puguin ser llegit directament des del navegador web.

<Files .htaccess>Order allow,denyDeny from all</Files>

Prevenir el hotlinking

de vegades, altres administradors web, fan seves les imatges de les nostres webs, articles, etc., afectant amb això l’ample de banda de què disposem en el nostre Hosting. Si a més ells tenen una gran quantitat de visitants a el dia, aquests van a utilitzar el nostre ample de banda de servidor per a visualitzar les nostres imatges a la web aliena a nosaltres.

Es pot utilitzar el codi que es mostra a continuació per evitar el hotlinking, i d’aquesta manera reemplaçar la imatge original per una altra amb algun avís per fer-los saber que la imatge és la nostra o que el hotlinking és una mala pràctica.

RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+.)?webempresa.com/ RewriteCond %{HTTP_REFERER} !^$RewriteRule .*.(jpg|gif|bmp|png)$ http://hotlink.webempresa.com/no_se_permite_hotlinking.jpg 

Pots pujar la imatge a un lloc d’allotjament d’imatges com ImageShack per evitar que el teu ample de banda es vegi afectat.

Canviar la ubicació de la carpeta de domini a una altra carpeta de / public_html

Si ja tens un lloc web a / public_html, i vols actualitzar la pàgina web, però no vols que els altres ho vegin, però tampoc vols afectar el lloc web en producció existent, la forma més fàcil és la construcció de la nova pàgina web en una subcarpeta de / public_html, per exemple, / public_html / web 2.

A l’acabar totes les proves i millores, necessites reemplaçar l’antic lloc web amb el nou, però transferir arxius i carpetes a la carpeta / public_html és bastant molest. La millor solució és usar.htaccess per dir-li a Apache que utilitzi la carpeta / public_html / web2 en lloc de / public_html per al domini.

RewriteEngine OnRewriteCond %{HTTP_HOST} ^webempresa.com$ RewriteCond %{HTTP_HOST} ^www.webempresa.com$RewriteCond %{REQUEST_URI} !^/web2/RewriteRule (.*) /web2/$1 

Crear URL de ús fàcil o “amigables”

Quina de les dues URL a continuació sembla més amigable?

http://tusitio.com/acercadehttp://tusitio.com/paginas/acercade.html

Quan es tracta d’adreces URL , sempre que el significat sigui clar, com més curt és, millor. htaccess amb una crida a l’mòdul d’Apache mod_rewrite permet configurar les adreces URL com vulguis.

el servidor pot mostrar el contingut de “/ pagines /acercade.html “cada vegada que algú visita” http://tusitio.com/acercade “.

A continuació alguns exemples:

RewriteEngine onRewriteRule ^acercade/$ /paginas/acercade.html RewriteRule ^caracteristicas/$ /caracteristicas.php RewriteRule ^comprar/$ /comprar.html RewriteRule ^contacto/$ /paginas/contacto.htm 

força l’ús de SSL

Aquest codi força a utilitzar SSL, no permetent connexions http. per evitar escoltes a http: // utilitzem per sota la directiva ErrorDocument.

SSLOptions + StrictRequire SSLRequireSSL

Quan una línia comença per # és un mengen ri que no té cap efecte.

Si algú visita el teu lloc del servidor web Apache verifica si té un arxiu .htaccess en algun lloc del seu espai web a partir de la carpeta arrel o la carpeta principal i rastreja totes les carpetes fins arribar a l’arxiu sol·licitat. Si troba un arxiu .htaccess, les seves directives s’apliquen a la sol·licitud actual.

És important saber que l’arxiu .htaccess s’ha de poder llegir pel servidor Apache. Per tant és important consultar amb el seu Hosting si es requereix algun permís especial que hagin establert per als arxius .htaccess.En general els permisos correctes per a aquest arxiu són 644.

Redireccionar d’HTTP a HTTPS

Val a dir que és necessari disposar d’un certificat SSL instal·lat al Hosting per poder fer ús d’aquest protocol més segur.

RewriteEngine On RewriteCond %{ENV:HTTPS} !on RewriteCond %{HTTP_HOST} ^tu_dominio.com$ RewriteCond %{HTTP_HOST} ^www.tu_dominio.com$RewriteRule ^(.*)$ https://tudominio.com/$1 

hi pot haver casos en què vulguem afegir excepcions en el forçat de la redirecció d’HTTP a HTTPS (per exemple, la pàgina de notificació de Redsys). Això ho podem fer afegint una línia de codi addicional. Si per exemple, volem afegir una excepció per a la url https://tudominio.com/?wc-api=WC_redsys caldria deixar el codi anterior de la següent manera:

RewriteEngine On RewriteCond %{ENV:HTTPS} !on RewriteCond %{QUERY_STRING} !wc-api RewriteCond %{HTTP_HOST} ^tu_dominio.com$ RewriteCond %{HTTP_HOST} ^www.tu_dominio.com$RewriteRule ^(.*)$ https://tudominio.com/$1 

Un altre exemple: si no volem forçar l’ús de l’HTTPS per a la url https://tudominio.com/blog/entrada1.html haurem de posar un codi com el següent:

RewriteEngine On RewriteCond %{ENV:HTTPS} !on RewriteCond %{REQUEST_URI} !/blog/entrada1.html$ RewriteCond %{HTTP_HOST} ^tu_dominio.com$ RewriteCond %{HTTP_HOST} ^www.tu_dominio.com$RewriteRule ^(.*)$ https://tudominio.com/$1 

Redireccionar de HTTPS a HTTP

es pot donar el cas que tot i tenir un Certificat SSL instal·lat (Comodo, Let ‘s Encrypt, etc) vulguis forçar el trànsit encriptat SSL perquè es serveixi amb HTTP per diverses raons (proves amb plugins conflictius, configuració d’una passarel·la pagament que no treballa bé per HTTPS, etc), i en aquest cas codis com el següent et permetran passar d’HTTPS a HTTP sense desinstal·lar el Certificat SSL del teu Hosting.

RewriteEngine OnRewriteCond %{ENV:HTTPS} on RewriteCond %{HTTP_HOST} ^tu_dominio.com$ RewriteCond %{HTTP_HOST} ^www.tu_dominio.com$ RewriteRule ^(.*)$ http://tudominio.com/$1 

Aquest codi has de col·locar per sobre de qualsevol altre codi de redireccionament, a el principi de l’arxiu .htaccess.

Forçar la càrrega de contingut mixt sota HTTPS en lloc de HTTP

Si tenim instal·lat un certificat SSL per servir la web sota protocol https però per alguna raó estem lliurant contingut sota protocol http com a contingut mixt, podem afegir la següent directiva a l’arxiu .htaccess per forçar que els continguts “no segurs” siguin forçats a carregar sota protocol HTTPS.

Aquesta directiva és compatible amb la majoria de navegadors actuals.

<ifModule mod_headers.c> Header always set Content-Security-Policy "upgrade-insecure-requests;"</IfModule>

Forçar la càrrega d’index.html

Perquè un lloc HTML funcioni sense afegir index.html hauries apuntar un domini o un subdomini directament a la carpeta que contingui el web, de manera que només trucant a http://dominio.com o subdominio.dominio.com (per exemple) carregui la web HMTL sense necessitat d’afegir l’arxiu index.html.

Si un web es crida des d’una ruta com http://domino.com/otra_carpeta/ és normal que hagis de afegir l’arxiu index.html perquè el navegador sàpiga que ha de carregar.

No obstant això pots forçar mitjançant .htaccess perquè carregui l’arxiu index.html sense haver de escriure-ho en el navegador.

RewriteEngine onRewriteRule ^(.*).php$ $1.html%{QUERY_STRING} 

Aquestes penes són unes pinzellades de les moltes possibilitats que té la correcta gestió de l’arxiu .htaccess que en la majoria de llocs webs, de l’nivell que siguin, sol passar desapercebut i és relegat a l’estatus d’un arxiu més, quan el potencial d’ell mateix és tan gran com vulgui atorgar-li el usuari.

Lectura recomanada sobre .htaccess

  • https://httpd.apache.org/docs/1.3/howto/htaccess.html
  • https://httpd.apache.org/docs/2.2/howto/htaccess.html#how
  • https://es.wikipedia.org/wiki/Htaccess

Altres articles d’el Blog sobre .htaccess

  • Redirecciona url de forma correcta usant cPanel i .htaccess
  • 10 senzills consells per reforçar la seguretat de WordPress usant .htaccess

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *