Informació general
Un fitxer .htaccess (hypertext access), també conegut com a fitxer de configuració distribuïda, és un fitxer especial, basat en un analitzador d’expressions regulars, que utilitzant el mòdul d’Apache mod_rewrite permet definir diferents directrius de configuració per a cada directori (amb els seus respectius subdirectoris), és a dir, reescriure les sol·licituds d’URL que entren al teu servidor.
Nota
Utilitzat correctament, mod_rewrite és molt potent. A més de les que citarem a continuació, hi ha moltes altres aplicacions per a mod_rewrite. Pots aprendre altres possibilitats del rewrite al web apache.org.
Els fitxers .htaccess s’ubiquen, habitualment, a l’arrel del directori on han de tenir efecte. Un cop pujat el fitxer al directori desitjat, la regla de reescriptura (rewrite rule) hauria de tenir efecte immediat en intentar accedir des d’un navegador al lloc.
Avís
Alguns Gestors de Continguts (Content Management Systems o CMS), com WordPress per exemple, sobreescriuen els fitxers .htaccess amb la seva pròpia configuració. En aquest cas, potser hauràs de buscar la manera de fer aquests canvis des del panell de control del CMS que estiguis utilitzant.
Expressions regulars
Les rewrite rules sovint contenen símbols que formen una expressió regular (regex). Així és com el servidor sap exactament com vols que l’adreça URL canviï.
Tanmateix, les expressions regulars poden ser difícils de desxifrar a primera vista. Per això, a continuació et mostrem alguns elements comuns que podràs veure a les rewrite rules facilitades als nostres articles relacionats amb fitxers .htaccess.
- ^ – Indica l’inici de la paraula a cercar.
- $ – Indica el final de la paraula a cercar.
És a dir, ^directori1$ indicaria exactament directori1. - . – El punt indica qualsevol caràcter menys l’espai (exemple: a, B, 3).
-
* – L’asterisc indica que el caràcter previ pot aparèixer 0 o més vegades.
Per exemple, ^uploads.*$ indicaria uploads2009, uploads2010, etc.Consell
En cas de no saber la URL que escriuran els usuaris, pots utilitzar ^.*$, que indicaria tot i res en concret.
- () – Els parèntesis permeten agrupar i desar una part de la primera cadena, per al seu ús posterior, utilitzant la variable $1 a la segona cadena. Això és útil per gestionar peticions a fitxers en particular que haurien de ser iguals tant a la versió antiga com a la nova de la URL.
Informació addicional
Has oblidat la contrasenya?
Pots trobar més informació sobre expressions regulars a la pàgina web perl.org.
Resolució general de problemes
404 Not Found
Examina la nova URL al teu navegador detalladament: fa referència a un fitxer que existeix al servidor a la nova ubicació especificada per la regla de reescriptura?
És possible que hagis de revisar que la regla de reescriptura resolgui més resultats fent-la més àmplia, o bé potser hauràs de copiar els fitxers des de la seva ubicació original a la nova ubicació perquè es puguin mostrar.
Si la URL és simplement incorrecta, com http://domini.com/directori1//fitxer.html (en aquest cas l’error són els dos “/” a la URL), hauràs de revisar de nou la sintaxi del fitxer .htaccess.
Avís
Clouding.io no donarà suport de sintaxi, ja que la responsabilitat de revisar-ho és del client.
URL infinita, temps d’espera esgotat (timeout), bucle de redirecció
Si notes que la URL és ridículament llarga, que la pàgina no carrega, o que el teu navegador mostra un error sobre la redirecció, és probable que tinguis conflictes de redirecció al lloc.
Hauries de revisar tot el teu fitxer .htaccess cercant regles de reescriptura que puguin coincidir amb altres regles. També pot ser necessari comprovar els fitxers .htaccess dels subdirectoris. Tingues en compte que els clients FTP no mostraran els fitxers .htaccess si no has activat l’opció de veure fitxers i carpetes ocults.
Consell
Afegir l’opció [L] després d’una regla de reescriptura pot ajudar en alguns casos, ja que indica al servidor que deixi d’intentar reescriure una URL després que s’hagi aplicat aquella regla.
Exemples pràctics de regles de reescriptura utilitzant .htaccess:
Nota
Els exemples dels enllaços següents es proporcionen per cortesia. Clouding.io no configurarà rewrite rules per a llocs web individuals dels seus clients.