Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » Server-Administration » Frage zu mod_rewrite Antworten
Frage zu mod_rewrite

tobias
Foren-Team


Beiträge: 708


Für eine Website habe ich folgende .htaccess-Datei erstellt:

1: 
2:
RewriteEngine on
RewriteRule ^(.*).html$ /index.php?page=$1


Das klappt auch ganz problemlos, allerdings werden nun auch richtige HTML-Dateien, die sich in Unterverzeichnissen des Servers befinden, an das Skript (index.php) weitergeleitet, wodurch diese nicht angezeigt werden. Ist es möglich, die Regel in der .htaccess-Datei nur für das Hauptverzeichnis gelten zu lassen?

Die Dateiendung für meine "falschen" HTML-Seiten (.html) möchte ich nicht ändern. Es ist in meinem Fall auch nicht möglich, im Unterverzeichnis eine weitere .htaccess-Datei zu platzieren, die die "RewriteEngine" abschaltet. Ich vermute, mein Problem lässt sich mit einem komplexeren regulären Ausdruck lösen. Hat jemand einen Idee zur Lösung?

  Profil   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


ka, obs geht: RewriteBase /Verzeichnis

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

einstein
Quasselstrippe


Beiträge: 241


ich kann es im Moment nicht testen, jedoch würde ich es einmal mit einem / vor dem (.*) Platzhalter versuchen.

Du könntest es auch einmal so versuchen:
^([A-Za-z0-9]*).html$ /index.php?page=$1

Dadurch würden dann nur [Buchstaben/Zahlen].html geparst, also keine Slashes, die es ja bei einem Unterverzeichnis geben würde.

k/a obs funktioniert, aber einen Versuch sollte es wert sein

  Profil   Editieren   Zitieren

tobias
Foren-Team


Beiträge: 708


einstein schrieb am 12.11.2003 22:30
ich kann es im Moment nicht testen, jedoch würde ich es einmal mit einem / vor dem (.*) Platzhalter versuchen.


Habe ich schon probiert, klappt leider nicht.

einstein schrieb am 12.11.2003 22:30Du könntest es auch einmal so versuchen:
^([A-Za-z0-9]*).html$ /index.php?page=$1


Das sieht sehr gut aus, allerdings habe ich auch Seiten, die einen Unterstrich (_) im Namen enthalten (z. B. "seite_xyz.html"), die fallen dann leider auch raus. Lässt sich dieses Zeichen nicht noch irgendwie einbauen?

  Profil   Website   Editieren   Zitieren

einstein
Quasselstrippe


Beiträge: 241


Die RegExp mit Unterstrich:

^([_A-Za-z0-9]*).html$ /index.php?page=$1


  Profil   Editieren   Zitieren

tobias
Foren-Team


Beiträge: 708


Danke, klappt wunderbar!

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben