Dennis: Ein kleiner Webdienst von mir

Beitrag lesen

Hi Blubb,

RewriteEngine On
RewriteRule [1]+$ /index.php?page=$1 [QSA]

Trotzdem funktioniert es nicht. Jetzt kommt halt nur kein Error 500 mehr, sondern ein Error 404.

Kommt ein 404 vom Server, oder ein von deinem index.php generiertes 404? Letzteres ist verständlich, weil ich die Klammern im regulären Ausdruck vergessen habe ;-)

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

Nur geklammerte Ausdrücke des regulären Ausdrucks sind in der Ziel-URL über $<x> ansprechbar, wobei x die Zahl für die Position der Klammer ist, so steht $1 also für den ersten und $2 für den zweiten geklammerten Ausdruck.

Kleines weiteres Beispiel:

RewriteRule ^(de|en)/([a-zA-Z0-9]+)$ /index.php?page=$2&lang=$1

Damit hättest du URLs à la /<sprache>/<seitenname>, wobei sprache hier nur de oder en sein kann.
Anderes Beispiel:

~~~apache RewriteRule ^([a-zA-Z-]{2,5})/([a-zA-Z0-9]+)& /index.php?lang=$1&page=$2 [QSA]
  RewriteRule ^([a-zA-Z0-9]+)$ /index.php?page=$1 [QSA]

  
Dies würde folgende URLs korrekt erkennen:  
  
  /seite  
  /seiteMitGrossbuchstaben  
  /seiteMit0123Zahlen  
  /de/seite  
  /de-at/seite  
  /en-us/seite  
  usw...  
  
Also optional ein Sprachkürzel am Anfang der URL, was 2 bis 5 Zeichen lang sein kann, gefolgt von dem Seitennamen, welcher aus Buchstaben und Zahlen bestehen darf, jedoch keine Sonderzeichen (z.B. deutsche Umlaute) enthalten darf.  
  
  
Viele Grüße,  
  ~ Dennis.

-- 
Mein [SelfCode](http://community.de.selfhtml.org/fanprojekte/selfcode.htm): [ie:{ fl:( br:> va:) ls:\[ fo:) rl:( n4:# ss:) de:\] js:| ch:{ sh:| mo:} zu:|](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%28+br%3A%3E+va%3A%29+ls%3A%5B+fo%3A%29+rl%3A%28+n4%3A%23+ss%3A%29+de%3A%5D+js%3A%7C+ch%3A%7B+sh%3A%7C+mo%3A%7D+zu%3A%7C)

  1. a-zA-Z0-9 ↩︎