Avatar billede feldthaus Nybegynder
20. maj 2003 - 11:45 Der er 9 kommentarer og
1 løsning

mod_rewrite og erstatning af ? med &

Jeg har i min .htaccess fil en lige mod_rewrite kode, indtil videre har jeg følgende:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+) /index.php?path=%{REQUEST_URI}

Ideen med ovenstående er at når brugeren spørger efter siden /forside får han uden at vide det faktisk /index.php?path=forside, hvilket også er perfekt, men nu søger jeg en metode til at få /forside?navn=peter til at blive /index.php?path=forside&navn=peter - dvs. at ? skal laves om til &. Jeg tror ikke det er så svært, men jeg forstår ikke rigtigt mod_rewrite. Jeg går ud fra at det er noget med først at erstatte alle ? med & og så udføre min kode. Håber at der er nogle som kan hjælpe mig.
Avatar billede htm Nybegynder
20. maj 2003 - 12:10 #1
Prøv og lav din rewriteRule om til:

RewriteRule ^([^/]+)/([^/]+)$ index.php?path=$1&navn=$2

Så skriver man bare www.mitdomæne.dk/forside/peter og så kommer den ind som index.php?path=forside&navn=peter
Avatar billede feldthaus Nybegynder
20. maj 2003 - 12:49 #2
Ok, jeg tror godt jeg forstår hvad du mener, men det er ikke den opbygning jeg er interesseret i. Det skal slet ikke være så smart :)

Den skal bare lave /forside?tekst=dav om til /forside&tekst=dav hvorefter jeg så kan lave endnu en rule til index.php?path=/forside&tekst=dav

Kan det ikke lade sig gøre?
Avatar billede htm Nybegynder
20. maj 2003 - 12:57 #3
prøv med:

RewriteRule ^([^/]+)?([^/]+)$ index.php?path=$1$2
Avatar billede feldthaus Nybegynder
20. maj 2003 - 13:10 #4
Ok, jeg tror du har forstået mig, men jeg kan ikke rigtigt få det til at virker (dvs. det virker ikke).

Jeg har ikke så meget styr på RewriteRule's hvad betyder: [^/] f.eks.? Jeg bruger det kun fordi det virker i det første jeg skrev :-/
Avatar billede feldthaus Nybegynder
20. maj 2003 - 13:28 #5
hvor blev du af htm :(

Det er egentligt ligegyldigt hvad [^/] betyder, bare jeg får lidt kode som virker.

Findes der ikke en guide på nettet?
Avatar billede htm Nybegynder
20. maj 2003 - 13:35 #6
Jow der findes mange guider på nettet bla. http://mbn.dk
[^/] betyder at den skal matche alt - at den er omkranset af paranteser betyder at dette er en variabel- Derfor første parentessæt matcher $1 og nummer to parantessæt matcher $2
+ betyder at strengen fortsætter, altså at det er mere end 1 tegn.
^ foran betyder start på streng
$ bagved betyder slut på streng

Jeg har desværre ikke tid til at kigge på det nu, men vil kigge på det i aften. Hvis du ikke selv har fundet en løsning inden da!
Avatar billede feldthaus Nybegynder
20. maj 2003 - 13:40 #7
Ok, da gav mig da lidt ide om hvad det handlede om - men jeg er stadig et stort spørgsmålstegn på det område :)

Jeg prøver mig lidt frem...
Avatar billede feldthaus Nybegynder
20. maj 2003 - 18:36 #8
Nå, nu prøver jeg lige at redegøre for hvad der sker:

Jeg har en fil som hedder index.php som indeholder følgende:
<?
echo $_SERVER["QUERY_STRING"];
?>

---
Case 1

Når i min .htaccess skriver:
RewriteRule ^([^/]+)?([^/]+)$ /v2/index.php?path=$1$2

Og skriver: forside?id=10 i adresselinjen får jeg følgende output fra min index.php:
path=forside

---
Case 2

Men når jeg ændrer min .htaccess til:
RewriteRule ^([^/]+)?([^/]+)$ /v2/index.php?path=$1
(dvs. uden $2 tilsidst)

Og skriver: forside?id=10 i adresselinjen får jeg følgende output fra min index.php:
path=forsid

Dvs. uden det sidste 's'... og i det hele taget virker det med at lave ? til & overhovet ikke.

Jeg håber på noget mere hjælp... plz

[ hvor er du htm :) ]
Avatar billede htm Nybegynder
20. maj 2003 - 22:50 #9
Ja ja tålmodighed - jeg sagde i aften ;O)

Jeg vil dog sige at det ikke kan lade sig gøre, da ? fungerer som enten en wildcard i RewriteRule eller hvs denne escapes fungerer det som en variabel tildeling og bliver derfor ikke fanget i RewriteRule! Desværre :-(
Avatar billede feldthaus Nybegynder
21. maj 2003 - 11:51 #10
Hmm, det er jo mildest talt noget møg :-(

Nå, jeg vil prøve at få noget auto_append_file og auto_prepend_file til at fungere i php, hvis der ikke er andre muligheder.
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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