RewriteRule

Split1989

hh-student.de
ID: 238425
L
9 April 2007
1.223
85
Hallo Leute,

hab ein kleines Problem. möchte gerne meine url per mod rewrite modifizieren ... funt auch teilweise aber noch nicht ganz so wie ich will.

Code:
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)\?$ /index.php?modul=ad&action=$1&kategorie=$2&titel=$3&auf_id=$4 [L]


https://sample.de/lade/nachrichten/bla bla bla/124

funktioniert soweit ganz gut.

aber ich möchte jetzt gerne sowas in der art haben

Code:
RewriteRule ^([^/]*)*/([^/]*)\?$ /index.php?modul=ad&auf_id=$1 [L]

er soll sich das angucken was nach dem letzten "/" kommt wo nur zahlen drin vorkommen.

hier einpaar beispiele die funktionieren sollen

https://sample.de/lade/nachrichten/bla bla bla/124
https://sample.de/lade/nac/hrichten/bla bla bla/124
https://sample.de/a/124
https://sample.de/bla/bla/bla/bla/bla/bla/bla/bla/bla/bla/124

danke schonmal im vorrauch
 
Reicht da nicht einfach folgende Regel?

Code:
RewriteRule /(\d+)$ /index.php?modul=ad&auf_id=$1 [L]
 
noch ein kleines problem ;(

https://sample.de/123/01/124
sollte auf /index.php?modul=ad&auf_id=124 verlinken verlikt aber auf /index.php?modul=ad&auf_id=123

edit:
Code:
RewriteRule (.*)/(\d+)$ /index.php?modul=ad&auf_id=$2 [L]
sollte gehen oder?

edit2:
Code:
RewriteRule (.*)/(\d+)(/(.*))?$ /index.php?modul=ad&auf_id=$2 [L] [L]
sollte noch besser sein somit kann vor und nach der zahl egal was stehe
 
Zuletzt bearbeitet:
auf den letzten in dem nur digits vorkommen .... das ist somit $2


/asd/123/12a

$1= asd
$2 = 123
$3 = 12a

/123/234

$1 = 123
$2 = 234
$3 = leer

/234

$1 = leer
$2 = 234
$3 = leer
 
Klappt das mit "mehr bla/bla" auch noch?

leck/123/mich456/anne789/fuesse/

"Nur Ziffern" sollte hier auch auf $4 und $6 zutreffen.


nein trifft es nicht den "mich456" besteht nicht nur auf digits sondern auch aus chars

$1 = leck/
$2 = 123
$3 = /mich456/anne789/fuesse/

er guckt wo die letze zahl zwischen "/" und "/" steht das ist die $2 alles davor ist $1 und alles danach $3
wenn nix davor oder nach steht sind die $1 und $3 einfach leer

https://htaccess.madewithlove.be/
hier kann man seine rules ganz gut testen
 
nein trifft es nicht den "mich456" besteht nicht nur auf digits sondern auch aus chars

$1 = leck/
$2 = 123
$3 = /mich456/anne789/fuesse/

er guckt wo die letze zahl zwischen "/" und "/" steht das ist die $2 alles davor ist $1 und alles danach $3
wenn nix davor oder nach steht sind die $1 und $3 einfach leer

https://htaccess.madewithlove.be/
hier kann man seine rules ganz gut testen

upps...

sollte eigentlich "leck/123/mich/456/anne/789/fuesse/" werden


edit: hab den Tester gerade mal damit gefüttert, der hat '/index.php?modul=ad&auf_id=789' ausgespuckt. Das ist dann zwar das gesuchte Element, aber mir ist nicht klar wo dabei die (Zusatz-) Forderung LETZTES Vorkommen ins Spiel kommt.
 
Zuletzt bearbeitet:
das kommt da nicht explezit drin vor geschieht durch die syntax und durch die reinfolge wie die regular expression abgearbeitet wird nehme ich an.

ich glaube er geht so vor das er von links nach recht durchliest

leck/123/.....

$1 = leck/
$2 = 123
$3 = rest

jetzt liest er weiter und stoß auf eine weitere zahl und überschreibt nun die alten variablen

leck/123/mich/456/anne/789/...
$1 = leck/123/mich/456/anne/
$2 = 789
$3 rest

somit wird halt immer die letze genommen :D