regulært udtryk

Tags:    htaccess rewriterule

<< < 12 > >>
Jeg vil gerne gøre så følgende 3 urls viderestilles:
localhost/ub/123/noget-tekst
localhost/ub/123/
localhost/ub/123

I min .htaccess fil skriver jeg følgende.
Fold kodeboks ind/udKode 

Det virker men jeg er ikke god til regulært udtryk og sidder bare og gætter mig frem til hvad der skal stå.
Og det skulle jo gerne kun være 1 linie og ikke 2.
Så hvordan skriver jeg det rigtigt ?

Hvordan siger jeg at der måske skal være et /-tegn ?
Jeg har prøvet med [/]? og ligende men ved ikke helt hvordan jeg skal gøre.



12 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Prøv denne i stedet - så er der stadig ingen PHP inde i billedet. :)

RewriteRule ^ub/(.+)(/.+)?$ scooterhjemmeside/billeder.php?$1



Hvis det altid er numerisk resultat, så kan du benytte:

Fold kodeboks ind/udKode 


Hvis ikke kun er det, kan du benytte:

Fold kodeboks ind/udKode 


Må URLen indeholde vilkårlige tegn, så kan du benytte:

Fold kodeboks ind/udKode 


eller:

Fold kodeboks ind/udKode 




Fold kodeboks ind/udKode 


eller

Fold kodeboks ind/udKode 



og ellers vil jeg helt klart anbefale dig at prøve at lege med RegExr: http://gskinner.com/RegExr/



Indlæg senest redigeret d. 25.04.2012 10:50 af Bruger #10216
den nemme løsning er ^ub/(.*)$

og så i billeder.php tager du bare alt indtil den første / og bruger som argument. fx.

Fold kodeboks ind/udPHP kode 


med både localhost/ub/123/noget-tekst, localhost/ub/123/ og localhost/ub/123 vil du have værdien 123 i $args[0];




Tak men jeres eksempler kræver allesammen at jeg skriver /-tegn efter tallet.
Så localhost/ub/123 virker ikke.



Tak men jeres eksempler kræver allesammen at jeg skriver /-tegn efter tallet.
Så localhost/ub/123 virker ikke.


du kan vel rette dem så de afslutter med (/)?$ :)


Fold kodeboks ind/udKode 


edit: kan da os lige putte det i en kode boks =)



Indlæg senest redigeret d. 23.04.2012 18:45 af Bruger #3427
Aha.

Har det nogen betydning om /-tegnet står i parenteser ?
Skal det egentligt ikke stå som [/] i stedet for (/) ?

Kender i en god let forståelig guide til regulært udtryk i .htaccess filer. Det skal være på begynder niveau for fatter det bare ikke særlig godt.

Jeg prøver og rode mere med det når jeg er hjemme og ser hvordan det virker i forskelige situationer.



RewriteRule ^ub/([^/.]+)/?$ scooterhjemmeside/billeder.php?$1

/ub/123
/ub/123/



Ok nu bruger jeg dette.
Fold kodeboks ind/udKode 

Men jeg vil gerne have at hvis der er en titel (for eksempel "noget-tekst") i urlen så SKAL der være et / tegn foran.
Ligesom : localhost/ub/123/noget-tekst

Jeg vil ikke have at localhost/ub/123noget-tekst skal være gyldigt.

Hvordan gør man det ?



Indlæg senest redigeret d. 24.04.2012 16:41 af Bruger #13010
Aha.

Har det nogen betydning om /-tegnet står i parenteser ?
Skal det egentligt ikke stå som [/] i stedet for (/) ?

Kender i en god let forståelig guide til regulært udtryk i .htaccess filer. Det skal være på begynder niveau for fatter det bare ikke særlig godt.

Jeg prøver og rode mere med det når jeg er hjemme og ser hvordan det virker i forskelige situationer.


nu jeg langt fra ekspert på det her område, men jo du skulle godt kunne bruge [] ville jeg tro.
så vidt jeg ved betyder () bare at den returnere det. så du kan tilgå det via $

etc.
Fold kodeboks ind/udKode 



Ok nu bruger jeg dette.
Fold kodeboks ind/udKode 

Men jeg vil gerne have at hvis der er en titel (for eksempel "noget-tekst") i urlen så SKAL der være et / tegn foran.
Ligesom : localhost/ub/123/noget-tekst

Jeg vil ikke have at localhost/ub/123noget-tekst skal være gyldigt.

Hvordan gør man det ?


du ønsker at kunne bruge:
localhost/ub/123/noget-tekst
localhost/ub/123/
localhost/ub/123

kan ikke lige se hvordan man skulle lave den relg i htaccess, men kan forkalre dig hvordan med PHP.

ville lave et wildcard og tjekke med PHP
localhost/ub/*

Fold kodeboks ind/udKode 

Fold kodeboks ind/udPHP kode 


ikke testet, men noget i den stil.
edit:
evt lige put noget validering på inde i switch, om det nu er tal/text osv..



Indlæg senest redigeret d. 24.04.2012 17:45 af Bruger #3427
<< < 12 > >>
t