Avatar billede sebster Nybegynder
30. juni 2010 - 09:20 Der er 5 kommentarer og
1 løsning

Htaccess redirect!

Hej Eksperter,

jeg har problemer med at redirecte min tidliger subdomainer til de nye. Nogen der kan hjælpe?

Min tidligere adresse hedder:

index.php?site=produkter

og den nye side hedder

/product

Jeg bruger noget der minder om det her, men kan ikke få koblet det ordentligt sammen!
RewriteCond %{HTTP_HOST} website\.dk$ [NC]
RewriteRule ^(.*)$ http://www.website.dk/$1 [R=301,L]
Avatar billede repox Seniormester
30. juni 2010 - 09:39 #1
Du skulle kunne nøjes med
RewriteRule ^([A-Za-z0-9-]+)/?$ /index.php?name=produkter [L]


Problemet er bare at så bliver alt sendt videre og du vil få problemer med CSS og billeder og så videre... Så idéelt laver du noget ala:
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php?site=$1 [L,QSA]


Den sikrer dig at hvis filen eksisterer (f.eks. /css/styles.css) så henter den filen fremfor at parse den igennem index.php - men eksisterer filen ikke, sender den forespørgslen igennem index.php i $_GET["site"].
Avatar billede sebster Nybegynder
30. juni 2010 - 09:44 #2
Hvis jeg nu gerne vil have at de alle ramme på forskellige url'er


?site=produkter -> /product

?site=kontakt -> /contact

?site=profil -> /profile
Avatar billede repox Seniormester
30. juni 2010 - 09:56 #3
Så skal du jo lave en rewrite condition for hver linie; lidt tåbeligt - alternativt kan du løse det via PHP for at lette dynamikken istedet for at lave syge og lange mod_rewrites...

<?php

  switch( strtolower($_GET["site"]) )
  {
    case "product":
      $site = "produkter";
      break;

    case "contact":
      $site = "contact";
      break;

    case "profile":
      $site = "profil";
      break;

    default:
      $site = "index";
  }

?>


Personligt ville jeg nok lave noget mere dynamisk og lave nogle arrays eller objekter jeg kunne holde kaldet op imod, men det virker da...
Avatar billede sebster Nybegynder
30. juni 2010 - 10:42 #4
ja ved det godt, men har desværre omkring forskellige url'er som ikke har noget sammenhæng med de nye! Så bliver nød til det!

Hvordan klarer jeg den med rewrite condition?

Jeg er ikke med på hvordan du løser den med Php?
Avatar billede repox Seniormester
30. juni 2010 - 12:09 #5
Så ville du blive nød til at lave sådan noget i .htaccess:
RewriteRule ^product/?$ index.php?site=produkter [NC,L]
RewriteRule ^contact/?$ index.php?site=kontakt [NC,L]

og så videre...

Mit PHP eksempel er temmelig simpelt - hvis du ikke kan regne den ud, er .htaccess metoden nok bedre for dig.
Avatar billede sebster Nybegynder
04. november 2010 - 21:40 #6
luk
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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