kann man prüfen ob $1 gesetzt ist?

URLs umschreiben, umleiten, blocken oder sperren - all das und noch viel mehr kann mit mod_rewrite erreicht werden. Mit regulären Ausdrücken, Conditions und Rules stehst Du auf Kriegsfuss? mod_rewrite macht nicht das was Du willst, oder funktioniert gar nicht? hier bist Du richtig!

Moderatoren: Bob, Super-Mod

kann man prüfen ob $1 gesetzt ist?

Beitragvon derzwelch » 04.08.2010 11:12

hallo forum,

ich habe folgende rule erstellt:
Code: Alles auswählen
rewriterule ^(?:([0-9]{4})\-([0-9]{4}))?/?([a-z]+)?/?$ rw.php?season=$1/$2&module=$3 [L]


beim aufruf von von "domain.de/2010-2011/team" kommt folgendes ergebnis:
Code: Alles auswählen
Array
(
    [season] => 2000/2001
    [module] => team
)


so wie ich es haben will. beim aufruf von "domain.de/team" kommt folgendes ergebnis:
Code: Alles auswählen
Array
(
    [season] => /
    [module] => team
)

was auch korrekt ist, jedoch moechte nicht das der "/" mit uebergeben wird, wenn keine jahresangaben angegeben wurden. kann man im hinteren teil irgendwie checken ob $1 und $2 gesetzt sind und den / entweder mit auszugeben oder eben nicht? ich moechte wenn moechlich alles in einer rule regeln.

danke
derzwelch
.
.
 
Beiträge: 5
Registriert: 07.08.2005 15:23

Re: kann man prüfen ob $1 gesetzt ist?

Beitragvon Gumbo » 08.08.2010 10:26

Es können entweder zwei Regeln daraus gemacht werden:
Code: Alles auswählen
RewriteRule ^([a-z]+)?/?$ rw.php?module=$3 [L]
RewriteRule ^(?:([0-9]{4})\-([0-9]{4}))/?([a-z]+)?/?$ rw.php?season=$1/$2&module=$3 [L]

Oder es können die Werte von $1 und $2 geprüft werden:
Code: Alles auswählen
RewriteCond $1/$2 ^/$|^([0-9]{4}/([0-9]{4})$
RewriteRule ^(?:([0-9]{4})\-([0-9]{4}))?/?([a-z]+)?/?$ rw.php?season=%1&module=$3 [L]
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Re: kann man prüfen ob $1 gesetzt ist?

Beitragvon derzwelch » 08.08.2010 21:16

da ist zwar eine klammer zuviel in der cond, aber das hat mir schon sehr weitergeholfen. vielen dank
derzwelch
.
.
 
Beiträge: 5
Registriert: 07.08.2005 15:23


Zurück zu mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste