Com crear un re-adreçament simple des d'Apache 2.2 i 2.4

Apache HTTP Server

Quan tu permets que la teua pàgina web servisca continguts per dues vies, el que tens és un problema de duplicitat de continguts, això per als motors de cerca és fatal. En aquest Howto anem a aprendre a configurar un re-adreçament simple usant el mod_alias d'Apache, així com els tipus de re-adreçament que existeixen. Quan s'ha configurat un domini en Apache, cal decidir baix que configuració vols que el contingut de la teva pàgina web es desplegui. La pregunta bàsica: amb www o sense www; amb el port d'escolta o sense ell (exemple amb :8080 o sense :8080).

Per què és necessari això?

Quan tu permets que la teua pàgina web servisca continguts per dues vies (Ex. http://www.exemple.org i http://exemple.org o bé http://exemple.org i http://exemple.org:8080) el que tens és un problema de duplicitat de continguts, això per als motors de cerca és fatal. És com mantenir dos llocs als quals estàs fent tasques de posicionament als motors de cerca i competeixen entre ells.

Resoldre això és molt fàcil amb mod_alias, i ho anem a veure una mica més avall.

Què és mod_alias?

És un mòdul d'Apache que permet manipular rutes de la teua pàgina web. Entre el que es pot fer és: crear rutes virtuals, redireccionar rutes, crear àlies per a rutes existents fins i tot que no formen part del teu lloc (en un altre directori a servidor).

Existeixen 4 tipus de re-adreçament que podem utilitzar segons el nostre criteri:

  1. 301 - Indica que el recurs s'ha mogut de forma permanent.
  2. 302 - Indica que el recurs s'ha mogut de forma temporal.
  3. 303 - Indica que el recurs ha estat reemplaçat per un altre.
  4. 402 - Indica que el recurs s'ha eliminat de forma permanent. Quan s'utilitza aquest estat l'argument URL s'ha d'ometre.

Configuració pas a pas d'un re-adreçament simple utilitzant el mod_alias d'Apache HTTP Server (versió 2.2 i 2.4)

Habilitar mod_alias a Apache

Per habilitar mod_alias a Apache hem d'executar:

sudo a2enmod alias

 Exemples en dos escenaris diferents:

1 Escenari, Quan permets que la teua pàgina web servisca continguts per dues vies, amb www i sense www (Ex. Http://www.exemple.org i http://exemple.org)

Crearem dos arxius virtualhost, un on hi haurà la configuració del lloc que servirà el contingut (amb www) i la segona que contindrà el redirect (sense www). Apache guarda la configuració dels virtualhost sota el directori /etc/apache2/sites-available. Amb l'editor nano, crearem dos arxius en aquest direcrori.

sudo nano /etc/apache2/sites-available/www.exemple.org.conf

Afegim el següent contingut ...
<VirtualHost *:80>
        ServerAdmin Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la.
        ServerName www.exemple.org
        ServerAlias www.exemple.org       
        DocumentRoot /var/www/www.exemple.org
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Directory /var/www/inforoigpv/>
                Require all granted
                AllowOverride All
        </Directory>
</VirtualHost>

Guardem l'arxiu i ara crearem el segon.

sudo nano /etc/apache2/sites-available/exemple.org.conf

Ara afegim la configuració del redirect ...
<VirtualHost *:80>
        ServerName exemple.org
        Redirect 301 / http://www.exemple.org/
</VirtualHost>

Nota ... Establint les directives ServerAlias ​​a subdominis o *.domain.com*, pot redirigir aquests o tots els subdominis en un sol pas al domini apropiat.

Novament hem de guardar l'arxiu. El que hem definit en aquest escenari és que qualsevol accés a la URL http://exemple.org re-adrece automàticament cap http://www.exemple.org.

2 Escenari, Quan permets que la teua pàgina web servisca continguts per dues vies, amb el port d'escolta per defecte (default) d'Apache i un altre (Ex. http://servidorsroig.sytes.net i http://servidorsroig.sytes.net.org:8080)

En aquest cas tenim dos servidors físics:

- Un servidor físic sota Debian 7, on estem fent córrer Apache 2.2 pel port d'escolta 8080 i on tenim allotjat el lloc servidorsroig.sytes.net (per accedir al lloc haurem d'afegir el número del port a l'adreça, 'http://servidorsroig.sytes.net:8080), el seu virtualhost és:

<VirtualHost *:8080>
        ServerAdmin Aquesta adreça de correu-e està protegida dels robots de spam.Necessites Javascript habilitat per veure-la.
        ServerName servidorsroig.sytes.net
        ServerAlias servidorsroig.sytes.net

        DocumentRoot /var/www/servidorsroig.sytes.net
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/servidorsroig.sytes.net/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

- I l'altre servidor físic sot a Ubuntu 14.04, on estem fent córrer Apache 2.4 (amb el port d'escolta per defecte 80) i on tenim allotjades vàries webs. És ací on crearem el nostre redirect, Apache guarda la configuració dels virtuahost al directori /etc/apache2/sites-available, així que crearem un virtualhost (que jo anomenaré servidorsroig-redirect.conf):

sudo nano /etc/apache2/sites-available/servidorsroig-redirect.conf

Afegim la configuració del redirect:

<VirtualHost *:80>
        ServerName servidorsroig.sytes.net
        Redirect 301 / http://servidorsroig.sytes.net:8080/
</VirtualHost>

 

Novament hem de guardar l'arxiu. El que hem definit en aquest escenari és que qualsevol accés a la URL http://servidorsroig.sytes.net o http://servidorsroig.sytes.net:8080 re-adrece automàticament cap a http://servidorsroig.sytes.net:8080, d'altra forma al accedir a http://servidorsroig.sytes.net (sense el número de port), en joc d'apuntar cap al servidor on és allotjada aquesta web, apuntarà cap al servidor que té Apache assignat el port default (per defecte), el que és el mateix el port 80.

Habilita fitxers virtuallhosts

Perquè la configuració tinga efecte, hem d'habilitar les configuracions en Apache. Per això hem d'executar les ordres:

Al escenari 1 (Ex. Http://www.exemple.org i http://exemple.org)

sudo a2ensite www.exemple.org

sudo a2ensite exemple.org

Al escenari 2 (Ex. http://servidorsroig.sytes.net i http://servidorsroig.sytes.net.org:8080), on hem creat el redirect.

sudo a2ensite servidorsroig-redirect.conf

Recarregar la configuració d'Apache

Perquè les modificacions tinguen efecte cal fer que apache torne a llegir els seus fitxers.

sudo service apache2 reload

 

Ara que la configuració ha estat aplicada, només cal anar a un navegador i provar-la. Dirigeix-te al domini configurat sense www, i veuràs que en qüestió de mil·lisegons aquest és re adreça al lloc amb www, o dirigeix-te domini configurat sense número de port i veuràs que aquest és re adreça al lloc amb número de port 8080.

 

Salutacions

 

Apache Server

SALUT I LLIBERTAT