Avatar billede gjessing Nybegynder
27. februar 2012 - 23:53 Der er 7 kommentarer og
1 løsning

RewriteRule

Hej
Jeg har ved en fejl fået fået lavet denne rule
RewriteRule ^profil1-([0-9]*)-(.*).html$ vis.profil.php?id=$1

men der skulle have stået sådan her (bemærk 1 i reglen ovenover)
RewriteRule ^profil-([0-9]*)-(.*).html$ vis.profil.php?id=$1

hvordan får jeg nu lavet en permenet rewriterule så alt som kommer ind med dette parameter bliver viderestillet til profil-([0-9]*)-(.*).html$
Avatar billede DeeDawg Nybegynder
28. februar 2012 - 01:50 #1
Med omkring 26 åbne spørgsmål - endda nogen der går helt tilbage til 2004, tror jeg ikke du skal forvente nogen hjælp.

Få lukket dine spørgsmål, og så kan vi kigge på dit problem. :)
Avatar billede tobrukDk Novice
28. februar 2012 - 07:48 #2
#1 der vil jeg give dig ret. det ville jeg også forvente før man stille et nyt spørgsmål.. :)
Avatar billede gjessing Nybegynder
28. februar 2012 - 10:37 #3
Ups sorry - jeg har nu ryddet lidt op i mine gamle åbne spørgsmål.
Avatar billede DeeDawg Nybegynder
28. februar 2012 - 13:14 #4
Som jeg har forstået, er det dette du leder efter

RewriteRule ^profil(1?)-([0-9]*)-(.*)\.html$ vis.profil.php?id=$2

men der er nogle ting du bør overveje. Nu har du ikke fortalt, hvorfor du ikke bare retter det til i din fil, men jeg kan næsten gå ud fra, at det har noget at gøre med at gamle links, bogmærker osv. ikke går tabt.

Hvis dette er korrekt, skal du jo vide at du ikke rigtig løser problemet, med det jeg har givet dig herover. Det er det vi kalder en lappeløsning.

Hvad du burde gøre, er at videresende brugere til den gældende URL-struktur, hvis de prøver at tilgå den gamle. Dette kunne du gøre således

RewriteRule ^profil1-([0-9]*)-(.*)\.html$ http://ditdomæne.dk/profil-$1-$2.html [R=301,L]
RewriteRule ^profil-([0-9]*)-(.*)\.html$ vis.profil.php?id=$1

Derfor er det denne fremgangsmåde jeg vil anbefale dig at benytte. :)
Avatar billede gjessing Nybegynder
28. februar 2012 - 13:22 #5
Det er fordi linket kommer fra google.
www.mitdomaine.dk/profil1-myname-mycity.html eks

når det kommer til min server vil jeg gerne redireckte det til
www.mitdomaine.dk/profil-myname-mycity.html (uden 1) :)

jeg håber det gir mening.?
Avatar billede gjessing Nybegynder
28. februar 2012 - 13:52 #6
Hej igen
det første ser ud til at virke.
nu mangler jeg bare
www.mitdomaine.dk/vis.profil.php?id=15151515 <- kommer fra google

hvordan kan jeg få det til

RewriteRule ^vis.profil.php?id=([0-9]*)-(.*)\.html$ http://ditdomæne.dk/profil-$1-$2.html [R=301,L]
Avatar billede DeeDawg Nybegynder
29. februar 2012 - 00:14 #7
Når vi allerede omskriver fx profil-255.html til vis.profil.php?id=255, så kan du ikke også videresende vis.profil.php?id=255 til profil-255.html. Det ville nemlig resultere i et uendeligt loop.

Jeg har i hvert fald ikke fundet, eller set nogen optimal løsning på det endnu. Men nu taler jeg jo også kun om brug af .htaccess. Denne opgave kunne du løse med hjælp fra PHP.

Her kan du se en test side.

<?php
    $request_uri = basename($_SERVER['REQUEST_URI']);
    if(preg_match("#vis\.profil\.php\?id=([0-9]*)#", $request_uri, $matches)){
        header("HTTP/1.1 404 Not Found");
        header("Location: http://ditdomæne.dk/profil-$matches[1].html");
        die();
    }
   
    if(isset($_GET['id'])){
        echo "Profil ID: <strong>".$_GET['id']."</strong><br /><br />";
        echo "<pre>$request_uri</pre>";
    } else {
        die("Mangler data!");
    }
?>

Vær dog opmærksom på, at dette kun er et eksempel, og at man skal være lidt mere kritisk overfor hvad brugeren indtaster. ;)
Avatar billede gjessing Nybegynder
30. maj 2012 - 22:32 #8
Jeg endte med at finde en leverandør der fikset problemet for mig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester