Just nu i M3-nätverket
Gå till innehåll

+ tecken i url


happyfejs

Rekommendera Poster

Tjenare, hur bär jag mig åt för att kunna använda + tecken i min url, ska använda det till en taggningsfunktion, säg att jag har taggarna röd, gumma, stor då vill jag att url:en ska bli röd+gumma+stor, har idag en rewriteRule som ser ut såhär

 

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)(/)?$ index.php?page=$1&p=$2 [NC]

 

Tack på förhand

Länk till kommentar
Dela på andra webbplatser

Betyder det att du tycker att jag inte ska ha + i urlen utan använda %2B ?

Jag kommer fortfarande till en 404 Not Found fast jag skriver %2B..

 

Vill att url:en helst ska innehålla +, ex så här url.se/tatueringar/grön+gumma+asiatisk

 

Kan man göra så att det på nått sätt funkar med åäö i url:en också? eller måste man byta till aao?

Länk till kommentar
Dela på andra webbplatser

%2B och "+" gör ingen skillnad om det inte är "skit bakom spakarna" som skapat sidan du anropar, det är något annat som strular. ÅÄÖ ska även det översättas till hexadecimal av en urlencode-funktion.

Kontrollera att du verkligen har ett frågetecken innan din querystring. Lätt att glömma ibland när man bygger funktioner som bygger url:ar.

Sådana enkla misstag har jag gjort ett par gånger och stirrat mig blind på resten av url:en.

Länk till kommentar
Dela på andra webbplatser

Ok, använder hexxa nu för allt.

 

Vad menar du att det ska vara ett "?". I apachen? .htacess filen ser ut så här i php:en skriver jag ju bara ut länken så här <a href="/tatueringar/<?php echo myurlEncode("blå+grön+stor"); ?>">

 

RewriteEngine On
RewriteBase / 

RewriteRule ^([a-zA-Z0-9_-]+)(/)?$ index.php?page=$1 [NC]

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)(/)?$ index.php?page=$1&p=$2 [NC]

 

Jag skulle ju kunna skriva typ /tatueringar?taggar=gul+stor, då får jag inget felmeddelande, men hittar inte variabeln taggar?

Länk till kommentar
Dela på andra webbplatser

Nej, jag menade frågetecknet i url:en, typ innan ordet apa i det här exemplet: sajt.se/sida.php?apa=bananälskare.

Vad gäller hur du gör på själva serversidan, när du mottar detta, kan jag tyvärr inte hjälpa. Jag är Microsoft-kille och har inte använt PHP eller Apache på många år. Men det du behöver göra på serversidan är iallafall en motsvarande url-DECODE, för att översätta hexen tillbaka till ascii. Gissar att det i php heter just "urldecode"

Länk till kommentar
Dela på andra webbplatser

Observera att + i en url betyder mellanslag. taggar=gul+stor ger alltså $_GET['taggar'] värdet 'gul stor'. Om det verkligen är ett plustecken du vill ha så måste det anges som %2B (precis som Anjuna Moon säger).

 

Sen saknas några tecken i dina exempel:

 

Jag skulle ju kunna skriva typ /tatueringar?taggar=gul+stor, då får jag inget felmeddelande, men hittar inte variabeln taggar?

 

Här har du glömt ett snedstreck före frågetecknet, ska vara /tatueringar/?taggar=gul%2Bstor

 

i php:en skriver jag ju bara ut länken så här <a href="/tatueringar/<?php echo myurlEncode("blå+grön+stor"); ?>">

 

Här har du glömt frågetecknet efter snedstrecket, ska vara <a href="/tatueringar/?<?php echo myurlEncode("blå+grön+stor"); ?>">

 

(Förutsatt att du har gjort en funktion som heter myurlEncode().)

Länk till kommentar
Dela på andra webbplatser

Fortfarande ingen som vet hur jag kommer åt variabeln som både jag och Thomas nämner? /tatueringar/?taggar=gul%2Bstor

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...