Steff hat geschrieben:ich möchte von :
ordner/datei.php?var=kann-unterschiedlicher-Text-sein
nach
ordner/kann-unterschiedlicher-Text-sein.html
RewriteRule ^ordner/(.*)\.html$ ordner/datei.php?var=$1
funktioniert nicht !!
Nein, kann auch nicht, denn in der Anweisung wandelst Du ordner/bla in ordner/datei?bla um, nicht wie Du möchtest ordner/datei?bla in ordner/bla. Weiterhin fehlen
RewriteEngine und
RewriteBase.
Eventuell möchtest Du Dir aber nochmal überlegen, was reingehen und was rauskommen soll, und statt "funktioniert nicht" eine brauchbare Fehlerbeschreibung (EVA = Eingabe (benutzte URL), Verarbeitung (vollständige mod_rewrite-Konfiguration), Ausgabe (ausgegebene URL bzw. Anzeige des Browsers)) liefern.
Es ist davon abgesehen bisweilen hilfreich, RewriteRule mit [R] am Ende der Zeile zu Prüfzwecken zu einer externen Weiterleitung zu bewegen, weil man dann auch die neue URL in der Adressleiste des Browsers sehen kann.
Zu [1-17]: mod_rewrite kann nicht zählen. Der Bindestrich steht für eine Reihe von Schriftzeichen, zum Beispiel "a bis z" oder "Ziffer 0 bis Ziffer 9". Wenn Du eine Reihe von Nummer 1 bis Nummer 17 haben möchtest, musst Du das auf Schriftzeichenbasis machen: 'Entweder Ziffer 1 bis 9, oder Ziffer 1, gefolgt von Ziffer 0 bis Ziffer 7'. Als Muster wäre das '([1-9]|1[0-7])' (ohne Anführungszeichen).
Dein Muster war schon im Großen und Ganzen funktionsfähig, allerdings solltest Du grundsätzlich die gewünschten Textpassagen so genau wie möglich beschreiben. '.*' trifft auf alles zu, in diesem Fall auf '10/bla.html' genauso wie auf 'ueberuns/impressum.html' und 'schoenes/wetter/heute.html'.
Für 'ordner/zahl1bis17/bla.html' müsste sich '^ordner/([1-9]|1[0-7])/[^/]+\.html' besser eignen.