Avatar billede vix-mix Nybegynder
26. juni 2012 - 21:37 Der er 14 kommentarer

Htaccess + mysql og redirect

Hej eksperter.

Jeg håber i kan hjælpe mig.

Nu gir jeg snart op, jeg kan ikke finde hjælp nogen steder på nettet, så nu prøver jeg sidste sted her :)

Jeg har en htaccess fil som jeg gerne vil kunne styre via MYSQL, er det muligt overhovedet?

Jeg vil gerne kunne skrive søgeord/redirects ind i min mysql som så bliver lagt i min htaccess..f.eks:

Redirect /hest http://minside.dk/dyr.php

hvor "hest" er lagt ind via $h_dyr og "http://minside.dk/dyr.php" er lagt ind via $dyr_link

(Redirect /$h_dyr $dyr_link)

kan i hjælpe?
Avatar billede moddi100 Seniormester
26. juni 2012 - 21:52 #1
Grunden til at du ikke kan finde nogen løsning er, at du ikke kan gøre det fra en .htaccess fil.

Normalt gør man det, at man redirecter alt input til en enkelt php-fil. Fra denne fil opretter man så forbindelse til mysql-serveren og henter sine oplysninger. Matcher de kan man via funktionen include() indlæse de nødvendige filer.
Avatar billede vix-mix Nybegynder
26. juni 2012 - 21:56 #2
har du et eksempel på hvordan det vil se ud?
Avatar billede olebole Juniormester
26. juni 2012 - 22:40 #3
<ole>

Søg blandt Ekspertens guides

/mvh
</bole>
Avatar billede olebole Juniormester
26. juni 2012 - 22:43 #4
- og denne søgning er nok bedre  =)
Avatar billede vix-mix Nybegynder
27. juni 2012 - 10:05 #5
Jeg synes ikke jeg kan finde ne artikel som svare til mit "problem"  - er det bare mig eller?
Avatar billede moddi100 Seniormester
27. juni 2012 - 10:37 #6
Herunder kan du se et eksempel på hvordan det kunne laves, vær dog opmærksom på at .htaccess evt. skal udbygges, hvis du har billeder, css eller js.

.htaccess
RewriteEngine On
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png)$
RewriteRule * router.php


router.php
<?php
// opret forbindelse til database
$query = mysql_query("SELECT file FROM router WHERE keyword=" . mysql_real_escape_string($_SERVER['REQUEST_URI']));

if(mysql_num_rows($query) == 1)
{
  $file = dirname(__FILE__) . '/' . basename(mysql_result($query, 0));

  if(is_file($file))
  {
    include $file;
    exit;
  }
}


// Standard handling
include 'index.php';


Ovenstående er utestet men viser princippet. Jeg vil dog samtidig anbefale dig at tage et kig på http://www.eksperten.dk/guide/1480
Avatar billede vix-mix Nybegynder
27. juni 2012 - 10:44 #7
koden som du skriver under .htaccess sørger den for at hente den korrekte sti til css og js? for det er også et problem jeg har ?! :(
Avatar billede moddi100 Seniormester
27. juni 2012 - 10:46 #8
Koden:

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png)$


Søger bare for at den IKKE redirecter .css .js og .png filer til router.php. Alt andet videresendes. Bemærk dog at det kun gælder hvis de er stavet med småt. Skal det også gælde for store bogstaver tilføjer vi [NC] - no case syntaksen:

RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png)$ [NC]


Men har du et konkret eksempel på et css-dokument du ikke kan indlæse?
Avatar billede vix-mix Nybegynder
27. juni 2012 - 10:53 #9
jeg tror problemet ligger dybest i at min .htaccess ligger i min var/www/ mappe, og hele hjemmesiden ligger i var/www/site/ når jeg så smider f.eks:

RewriteRule udland/(.*)/(.*)/$ /site/udland.php?$1=$2

ind i .htaccess så kan man ikke skrive minside.dk/site/udland/nor

men kun minside.dk/udland/nor - og når man gør det, så får den ikke css og img med fordi de ligger i /site/ hmm.
Avatar billede moddi100 Seniormester
27. juni 2012 - 11:54 #10
Det har sandsynligvis noget at gøre med din DocumentRoot indstilling. Hvis du prøver at angive placeringen af css og billedfiler uden /site hvordan fungerer det så?
Avatar billede vix-mix Nybegynder
27. juni 2012 - 12:48 #11
dumt spørgsmål, hvor finder jeg ud af det ? og hvor ændrer jeg det til det korrekt?
Avatar billede moddi100 Seniormester
27. juni 2012 - 19:12 #12
Prøv bare at fortælle os hvordan dit link til dine billeder ser ud nu? (Kopier et img-tag herind)
Avatar billede vix-mix Nybegynder
27. juni 2012 - 19:21 #13
Jeg tror at jeg har fundet en løsning på det. Det virker i hvert fald nu.

nu skal jeg bare have fundet ud af hvordan og hvorledes det skal gøres med mysql :S
Avatar billede moddi100 Seniormester
28. juni 2012 - 01:01 #14
Så tag et kig tilbage på #6 og fortæl os hvor langt du kommer
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