Ionut Stoica

Programator PHP / Frontend developer / Pasionat de Electronica Auto
30Jul

Redirectionare domeniu (.htaccess redirect)

De multe ori se doreste redirectionarea unui domeniu catre altul, fie redirectionarea domeniului principal spre subdomeniul www (domeniu.tld spre www.domeniu.tld) sau invers, de pe tld pe subdomeniu.
Pentru a face acest lucru ne folosim de .htaccess

In prima situatie codul va arata cam asa:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domeniu.tld$ [NC]
RewriteRule ^(.*)$ http://www.domeniu.tld/$1 [L,R=301]

cel de al 2-lea caz difera prin locatia domeniu/subdomeniu in context.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.domeniu.tld$ [NC]
RewriteRule ^(.*)$ http://domeniu.tld/$1 [L,R=301]

Acest lucru se poate realiza si cu ajutorul negatiei acestei relatii intre HTTP_HOST si domeniu.tld

Comments(14)
  • alin
    Aug 14, 2010 at 3:38 am,  Reply

    Dar fara sa stii domeniul?
    Exemplu de mai jos merge pentru pentru redirectionarea fara www:

    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

    Dar pentrua a adauga www cand nu exista?

  • Ionut
    Aug 14, 2010 at 9:04 am,  Reply

    Poti incerca ceva de genul:

    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
    RewriteRule ^(.*)$ http://www.%1/$1 [R=301,NC,L]

    Nu ar avea de ce sa nu functioneze.

  • Mar 29, 2011 at 8:11 pm,  Reply

    Salut,
    am un server (linux) ce gazduieste 2 site-uri printr-un vhost Namebased.
    Din anumite motive, a trebuit sa mut unul dintre site-uri pe un alt server (vindows), aflat in spatele primului.
    Am incercat urmatoarea setare “DocumentRoot 192.168.0.1” dar nu ma duce pe cealalta masina. De pe serverul de windows, daca scriu in browser local host sau IP-ul, vad site-ul

    Unde gresesc?

    Multumesc

  • Ionut
    Mar 31, 2011 at 11:19 pm,  Reply

    DocumentRoot este o cale locala a fisierelor. Pentru a gazdui celalalt domeniu pe alt IP setezi in DNS (Daca ai bind pui ceva de genul domeniu-mutat.com. IN A 192.168.0.1), dar ai grija ca in loc de 192.168.0.1 ai nevoie de ip-ul public.

  • Nov 13, 2011 at 5:06 pm,  Reply

    Salut! Eu vreau sa redirectionez site-ul de pe un domeniu.eu catre alt domeniu.ro pentru a prelua vizitatorii de la domeniu.eu si pentru a nu pierde pozitia in Google pentru cuvintele cheie. Cum pot face asta, ce script php sa folosesc si unde pun acel cod. Cer ajutorul pentru ca am fost pusa in situatia de a face aceasta redirectare, din motive independente de vointa mea, si nu am avut timp de studiu fiind presata de timp. Precizez ca cele 2 domenii se afla pe acelasi pe acelasi hosting. Si dupa ce fac redirectinarea cum se comporta cele 2 domenii? Redirectionarea trebuie sa fie permanenta (din cate stiu nu prea e agreata de Google), sau e de ajuns o perioada de timp si apoi pot muta efectiv contentul pe domeniul.ro de pe .eu?
    Sper sa nu imi atrag cele mai aspre critici de la cei cunoscatori. Nu poti sa le stii pe toate, nu poti sa fii as in toate domeniile, dar cred ca de aceea avem posibilitatea de a cere ajutorul si astfel cu sfaturile profesionistilor ne putem perfectione intr-un anumit domeniu.
    Multumesc anticipat

    • Ionut
      Nov 13, 2011 at 8:09 pm,  Reply

      Buna, folosesti .htaccess redirect. In loc de domeniu.tld din primul exemplu folosesti domeniul-sursa. iar in loc de http://www.domeniu.tld folosesti domeniul destinatie.

  • Daniel
    Oct 30, 2012 at 12:14 pm,  Reply

    Salutare am un domeniu(magazin online) care este construit pe prestashop…precum stie toata lumea linkurile din prestashop contin cifre date automat de prestashop,atat in linkurile de la produse cat si la linkurie din categorie…curand voi schimba platforma(domeniul ramane aceasi) intr-un unul care nu genereaza automat linkuri cu cifre..

    Intrebarea este sa fac redirectionare 301 la toate linkurile existente sau doar unul general?
    Sau sunt deschis unor ideii mai bune din p.d.v. SEO.

    Va multumesc

    • Ionut
      Oct 30, 2012 at 12:37 pm,  Reply

      Salut. Cel mai bine faci reguli rewrite generice.
      De exemplu, daca pe prestashop ai link de genul numesite.ro/nume-produs–5/ si pe noul script vei avea numesite.ro/nume-produs/ atunci duci ai o regula ceva de genul:
      RewriteRule /(.*)--(.*) /$1 [L,R=301]
      Totul tine de ce ai acum si ce vei avea in scriptul nou.
      Daca nu ai foarte multe pagini/produse poti sa faci si redirectari manuale, dar cand ai multe produse se schimba situatia.

      In orice caz, trebuie sa eviti pierderea link-urilor din google.

      • Daniel
        Oct 30, 2012 at 1:20 pm,  Reply

        Deci practic as avea vreo 900 de pagini..am vorbit cu cineva si a spus ca nu am nevoie de redirectionari manuale pentru fiecare link ci doar de unul singur general si o pagina de eroare 404, cea ce cred ca este de neajuns pentru a nu pierde si nu a primi penalitati de la nenea google…

  • Ionut
    Oct 30, 2012 at 1:40 pm,  Reply

    Vei avea 900 de link-uri ce duc spre pagini diferite dar cu acelasi continut, deci continut duplicat. Nu este ok.

  • Daniel
    Oct 30, 2012 at 3:26 pm,  Reply

    Atunci care ari fii solutia ideala?

  • Daniel
    Oct 30, 2012 at 3:27 pm,  Reply

    Idea esta ca linkurile vechi nu vor mai fii pe domeniul ci vor fii inlocuite de cele noi….

    • Ionut
      Oct 30, 2012 at 4:18 pm,  Reply

      Da, dar vrei sa pastrezi totusi pozitia in google si backlink-urile, nu? in cazul asta ai nevoie de redirect, altfel nu se poate.

  • Ionut
    Oct 30, 2012 at 3:49 pm,  Reply

    Solutia ideala ar fi sa ai redirect pentru fiecare produs in parte, sau un script care sa creeze automat redirect-urile (sa trimita toate call-urile spre index.php si de acolo sa faci redirect permanent pe noul url).

Leave a comment

Your email address will not be published.Field is required

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 Previous  All works Next