[PHP/Apache] van twee 301 redirects naar één, cross-domain

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi

ik zoek een methode om een cross-domain van 2 redirects naar 1 redirect te gaan.
Ik verklaar me nader:

- op domain site1.com komt een link binnen met een bepaalde request: site1.com?user=93
- deze link moet met een 301 redirect naar het nieuwe domein: nieuwesite.com/user/93
- omdat we voor SEO geen duplicate content willen, zetten we de user=93 in een sessievariabele en redirecten we door naar, in dit geval, de homepage. dus wederom een 301 redirect => nieuwesite.com

Nu blijkt dat zoekmachines niet goed overweg kunnen met twee 301 redirects... dus ik wil er één uitslopen als het mogelijk is. Nu zijn er volgende oplossingen:

- niet verder redirecten na nieuwesite.com/user/93 en een no-index/follow metatag toevoegen (lelijke oplossing, geen optie voor mij)
- vanaf site1.com?user=93 met een 301 rechtstreeks naar nieuwesite.com/#user=93... dit met ajax opvangen en zo de sessiewaardes zetten. Zoekmachines indexeren de hash niet, dus ook geen duplicate content. Enige probleem: in PHP/Apache wordt bij een 301 redirect alles na de hash afgekapt:

code:
1
header("location:nieuwesite.com/#user=93",true,301);

resulteert in nieuwesite.com/#

Zijn er nog andere vormen om cross-domain (domeinen op andere servers) de parameters door te geven en zo maar één redirect in te hoeven stellen?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik kan mn vraag ook anders stellen:

kan ik op een bepaald domein variabelen instellen van een bezoeker, die ik op een ander domein inlees. (Ik kan wel connectie maken met db op andere server)... echter is IP-adres is niet genoeg

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Dat de hash niet werkt is logisch. Het hash teken is bedoeld voor de client en is alleen op de client te gebruiken.
Waarom redirect je niet gewoon naar nieuwesite.com/?user=93?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Janoz schreef op vrijdag 13 maart 2009 @ 12:24:
Dat de hash niet werkt is logisch. Het hash teken is bedoeld voor de client en is alleen op de client te gebruiken.
Waarom redirect je niet gewoon naar nieuwesite.com/?user=93?
Omdat dit duplicate content oplevert met nieuwesite.com (index pagina). De request dient enkel om een sessievariabele te setten, niet om een andere pagina weer te geven.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Waarom levert het duplicate content op? user is een parameter. Dat maakt het niet ineens een andere pagina.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Janoz schreef op vrijdag 13 maart 2009 @ 13:24:
Waarom levert het duplicate content op? user is een parameter. Dat maakt het niet ineens een andere pagina.
Voor zoekmachines wel... 2 verschillende url's, 1 pagina = voor een zoekmachine duplicate content

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Janoz schreef op vrijdag 13 maart 2009 @ 12:24:
Dat de hash niet werkt is logisch. Het hash teken is bedoeld voor de client en is alleen op de client te gebruiken.
De location header gaat ook naar de client, dus een hash zou daar prima thuishoren. Wanneer je die location header met PHP stuurt, werkt het prima. Ik vermoed daarom dat TS de hash moet escapen in zijn Apache-config.

edit:
TS lijkt al met PHP te werken. Deze code werkt prima in FF3 en IE7. Misschien dat het bij jou foutgaat omdat http ontbreekt in je header.
PHP:
1
header('Location: http://tweakers.net/#user=123');

[ Voor 19% gewijzigd door GlowMouse op 13-03-2009 13:47 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben niet zo'n held met SEO maar zou het niet al helpen als je op nieuwesite "user/" in robots.txt zet?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
GlowMouse schreef op vrijdag 13 maart 2009 @ 13:42:
[...]

De location header gaat ook naar de client, dus een hash zou daar prima thuishoren. Wanneer je die location header met PHP stuurt, werkt het prima. Ik vermoed daarom dat TS de hash moet escapen in zijn Apache-config.

edit:
TS lijkt al met PHP te werken. Deze code werkt prima in FF3 en IE7. Misschien dat het bij jou foutgaat omdat http ontbreekt in je header.
PHP:
1
header('Location: http://tweakers.net/#user=123');
Het moet een 301 header location zijn, geen gewone (ivm zoekmachinevriendelijke redirect).. en dan lukt het niet (wat idd mss wel logisch is maar niet praktisch ;))
Verwijderd schreef op vrijdag 13 maart 2009 @ 13:50:
Ik ben niet zo'n held met SEO maar zou het niet al helpen als je op nieuwesite "user/" in robots.txt zet?
klopt, maar dan profiteer je op gebied van SEO niet vande kracht van de link

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Als ik dit blog moet geloven probeert Google dergelijke pagina's zelf al samen te voegen en is het probleem niet zo groot als jij doet voorkomen in je startpost. Ook wordt er een oplossing gegeven om dit te vergemakkelijken. Door een sitemap te maken kun je laten zien dat de parameter helemaal niet van belang is voor deze specifieke pagina. Dat lijkt mij iig een stuk betere oplossing dan allerlei hacks of dubbele redirects.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op vrijdag 13 maart 2009 @ 14:13:
[...]


Het moet een 301 header location zijn, geen gewone (ivm zoekmachinevriendelijke redirect).. en dan lukt het niet (wat idd mss wel logisch is maar niet praktisch ;))
301/302 is irrelevant voor dit probleem.
Pagina: 1