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

+ tecken i url

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

Dela detta inlägg


Länk till inlägg
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?

Redigerad av happyfejs
Moderator har sammanfogat inlägg.

Dela detta inlägg


Länk till inlägg
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.

Redigerad av Anjuna Moon

Dela detta inlägg


Länk till inlägg
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?

Redigerad av happyfejs

Dela detta inlägg


Länk till inlägg
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"

Redigerad av Anjuna Moon

Dela detta inlägg


Länk till inlägg
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().)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...