![]() |
Lista ut från vilken domän besökaren kommer ifrån
Tjena.
Sitter och klurar lite här. En kund vill koppla sina olika domäner till en och samma sajt, men väl på siten så ska en pop-up dyka upp (typ lightbox/colorbox) där innehållet visas beroende på var besökaren kom ifrån först. Dvs, om besökaren surfar till www.exempel.fr, så skickas han direkt vidare till www.exempel.se (inga problem) men här vill jag (med php/htaccess) se: "Aha, han surfade från .fr, då ska jag visa honom ett meddelande på franska med den huvudsiden som bakgrund" Samma från flera domäner, .fr, .it, osv. Alla ska alltså till .se men här vill jag känna av var besökaren ursprungligen kom ifrån. Vidarebefodringen tex .fr > .se är inget problem, utan hur jag listar ut "förstabesöket" Tack för snabbt svar! |
lägga på en querystring-parameter? exempel.se/?lang=fr
|
Citat:
Jag vill, när besökaren väl landar på .se-sidan som alla domäner redirectar till, visa ett visst innehåll i en popup beroende på var de först kom ifrån. Läs igen. |
När du säger "skickar" men du då en http redirect? I sådana fall så bör du väl kunna titta på variablen $_SERVER['HTTP_REFERER']? http://php.net/manual/en/reserved.variables.server.php
typ: Kod:
if(isset($_SERVER['HTTP_REFERER']) && parse_url($_SERVER['HTTP_REFERER'], PHP_URL_PATH) == 'domain.de') { |
Vidarekopplingen ligger på DNS-nivå.
Har dålig koll på hur vidarebefodringar fungerar, så vet inte hur jag ska lösa detta riktigt. |
vidarekopplingar*
|
var_dump($_SERVER); ser du inte käll-adressen där får du byta redirect-metod.
|
Funkar detta även för vidarekopplingar som sker på DNS-nivå?
Kan inte testa just nu då jag inte är på kontoret tyvärr.. |
Jag vet inte. Men det skulle fungera om alla domäner pekades mot den lokala servern, och ännu bättre om det där gjordes en redirect med en query-string istället för en redirect till riktigadomänen.se/ att bara läsa av http_referer
|
Skulle nog hellre gå på vilket språk webbläsaren är inställd på att prioritera.
Dvs att du hanterar och parsar $_SERVER["HTTP_ACCEPT_LANGUAGE"], och därmed bestämmer språket utefter denna. Det är den korrekta vägen att gå om besökaren själv inte kan välja språk på sidan. |
Citat:
Alla domäner ska hamna på samma huvuddomän, alltså .se Väl där, så ska man känna av att man kom från tex .it eller .fr och då lämna ett meddelande på italienska eller franska. |
Fick nu reda på att det är 301-redirects.
Hjälper det? Hur ska det gå till då? |
Varför inte göra som Jonas föreslår? Det är väl klart en bättre lösning att visa ett meddelande på det språk som besökaren faktiskt pratar, oavsett vilken domän han råkat komma från.
Kod:
$lang = isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"]:''; |
Jag har engelskt OS och engelsk browser. När jag är i Sverige förväntar jag mig svenska som första val.
Det är också så de stora kund-orienterade sajterna gör. De väljer fysisk placering för att välja språk. Jag får t ex i Belgien oftast holländska/franska om jag bokar hotell, flyg, går igenom produktkataloger osv från större aktörer utan kakor med språkval. Gällande 301 redirect så kan du kolla $_SERVER['HTTP_REFERER']. Det är givetvis mycket bättre att visa information på tyska om besökaren gått in på company-name.de och redirectats till company-name.se än att visa engelska för att de har det i HTTP_ACCEPT_LANGUAGE. |
Jo men tyvärr så kan jag inte bestämma hur det ska vara. Alltså om det skulle påverkas av webläsarens språk eller så. Utan det är kunden som bestämmer här, oavsett rekommenderade lösningar.
|
Kom på det!
Jag kan ju kolla med javascript previous url :D |
Rätta mig om jag har fel men kan du verkligen få fram historiken i webbläsaren från andra domäner än den som scriptet kommer ifrån?
Vill du skriva det i javascript kan du titta på document.referrer, på backend använder du $_SERVER['HTTP_REFERER'] som redan föreslagits ett par gånger. / vic |
Alla tider är GMT +2. Klockan är nu 21:44. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson