Toon posts:

[PHP] Link aanpassen in functie van de url

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Had een tijd geleden een drietalige site gebouwd. Elke product pagina had dezelfde url in de 3 talen. Achteraf gezien was dit voor SEO geen goede keuze dus heb ik alle productpagina's hun url aangepast (nl/zonnebloem-olie , fr/huile-de-tournesol, sunflower-oil).

Nu probeer ik een script te schrijven die ervoor zorgt dat wanneer ik op 1 van 3 taalknoppen klik de url zich dan aanpast naar de juiste taal.

Wat ik al heb geprobeerd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php 
    function curURL() {
    $curURL = $_SERVER['REQUEST_URI']; 
    return $curURL;
    }

    $replace = array(""fr/" , "nl/");
    $page = str_replace($replace,"",curURL());

    switch ($page) {

        case "/huile-de-tournesol":
            $url = "/sunflower-oil";
            break;

        case "/zonnebloem-olie":
            $url = "/sunflower-oil";
            break;

    }


Mijn redenering: door de str_place te gebruiken houd ik alleen de productpagina naam over. Deze wil ik dan gebruiken in een vergelijking om zo per taal een script te gebruiken die de juiste link weergeeft ($url).

Ik zit er waarschijnlijk volledig naast, maar kan iemand mij hiermee verder helpen?

Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Is een array (fr (huile-de-tournesol=>sunflower)) maken niet eenvoudiger? In de database opslaan.
Taal,Titel,Pagina is overigens mn eerste keuze.

Edit: Ik zie dat je probleem eerder zit.
$urltranslate = array ("fr" => array ("sol" => "sun"));
$URLparts = explode ($newurl,"/");
$lang = $URLparts [count ($URLparts)-1];
$url = $urltranslate [$lang][$URLparts [count ($URLparts)]];

[ Voor 45% gewijzigd door ajakkes op 10-06-2015 06:41 ]

👑


Acties:
  • 0 Henk 'm!

  • Crutch
  • Registratie: Juli 2010
  • Niet online

Crutch

Masculinist

Verwijderd schreef op dinsdag 09 juni 2015 @ 16:51:
Had een tijd geleden een drietalige site gebouwd. Elke product pagina had dezelfde url in de 3 talen. Achteraf gezien was dit voor SEO geen goede keuze dus heb ik alle productpagina's hun url aangepast (nl/zonnebloem-olie , fr/huile-de-tournesol, sunflower-oil).

Nu probeer ik een script te schrijven die ervoor zorgt dat wanneer ik op 1 van 3 taalknoppen klik de url zich dan aanpast naar de juiste taal.

Wat ik al heb geprobeerd:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php 
    function curURL() {
    $curURL = $_SERVER['REQUEST_URI']; 
    return $curURL;
    }

    $replace = array(""fr/" , "nl/");
    $page = str_replace($replace,"",curURL());

    switch ($page) {

        case "/huile-de-tournesol":
            $url = "/sunflower-oil";
            break;

        case "/zonnebloem-olie":
            $url = "/sunflower-oil";
            break;

    }


Mijn redenering: door de str_place te gebruiken houd ik alleen de productpagina naam over. Deze wil ik dan gebruiken in een vergelijking om zo per taal een script te gebruiken die de juiste link weergeeft ($url).

Ik zit er waarschijnlijk volledig naast, maar kan iemand mij hiermee verder helpen?
Oneliner, komt ie:

code:
1
$page = str_replace(array("fr/","nl/"), "", $_SERVER['REQUEST_URI']);


Echter wil ik je adviseren om alle oude urls met behulp van de .htaccess een permanent redirect naar de nieuwe url te laten verwijzen (301):

Maak een bestand (als die er nog niet is) in de root/public directory van je website en noem 'm: .htaccess

Oude pagina's redirect je op deze manier:
code:
1
2
3
# .htaccess file
Redirect 301 fr/huile-de-tournesol http://www.jedomein.nl/sunflower-oil
Redirect 301 nl/zonnebloem-olie http://www.jedomein.nl/sunflower-oil


Wanneer bezoekers eenmaal de desbetreffende pagina hebben bezocht, onthoudt de browser waar de url eigenlijk naartoe moet verwijzen en heb je geen str_replace en switch functionaliteit meer nodig.

Meer info: http://www.metatags.nl/301_moved_permanently_redirect

[ Voor 0% gewijzigd door Crutch op 13-06-2015 01:01 . Reden: sluittag ]