Linda: .htaccess - Bitte um Erklärung der Lösung

Hallo zusammen,

auf einem Projekt habe ich zwei Anforderungen.

1. Es gibt eine feste vordefinierte und überschaubare Anzahl an Seiten (die Menge und die Namen sind bekannt). Für diese Seiten gilt die Regel:
http://www.mydomain.de/page1 -> http://www.mydomain.de/page1.php
http://www.mydomain.de/page2 -> http://www.mydomain.de/page2.php

2. Alles, was nicht explizit in der ersten Regel angesprochen wurde, sollte nach der folgenden Regel umgeschrieben werden
http://www.mydomain.de/etwas1 -> http://www.mydomain.de/ordner/etwas1/
http://www.mydomain.de/nocheins -> http://www.mydomain.de/ordner/nocheins/

Ich habe im Netz gesucht und folgende Regel für Nr.2 gefunden:

Options +FollowSymlinks  
RewriteEngine on  
RewriteRule ^(([a-z0-9-]+/)*[a-z0-9-]+)$ /ordner/$1/ [L]

Es funktioniert. Und jetzt die Fragen:
1. Kann man den Regex hier irgendwie vereinfachen?
2. Warum funktioniert die erste Anforderung gänzlich OHNE RewriteEngine. Liegt es an der Serverkonfiguration?

Danke für die Hilfe und Gruß, Linda

--
2 hours of try and error can save 10 minutes of manual reading
  1. @@Linda:

    1. Es gibt eine feste vordefinierte und überschaubare Anzahl an Seiten (die Menge und die Namen sind bekannt). Für diese Seiten gilt die Regel:
      http://www.mydomain.de/page1 -> http://www.mydomain.de/page1.php
      http://www.mydomain.de/page2 -> http://www.mydomain.de/page2.php
      --8<--
    2. Warum funktioniert die erste Anforderung gänzlich OHNE RewriteEngine. Liegt es an der Serverkonfiguration?

    Ja, vermutlich ist die Option MultiViews gesetzt. [Apache]

    Live long and prosper,
    Gunnar

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
    1. Hallo Gunnar,

      Ja, vermutlich ist die Option MultiViews gesetzt. [Apache]

      Danke. Scheint ein mächtige Einstellung zu sein. Und spart mir ein Rewrite.

      Gruß, Linda

      --
      2 hours of try and error can save 10 minutes of manual reading
      1. Danke. Scheint ein mächtige Einstellung zu sein. Und spart mir ein Rewrite.

        Sie ist eigentlich für etwas anderes gedacht, z.B. um unter generischen Ressourcen entsprechende Inhalte anzubieten.

        example.com/foo liefert an einen modernen Client foo.svg mit einem Balkendiagramm aus, an einen älteren Client vielleicht ein foo.png mit dem Diagramm - und an einen Textbrowser ggf. ein foo.html mit einer HTML-Tabelle und den selben Daten.

        Gesteuert wird das ganze über das HTTP-Accept-Feld.

        Alternativ kann man das System auch für das ausliefern von Alternativen Sprachversionen (oder auch beides) benutzen.

        Deutscher Textbrowser bekommt foo.de.html, englischsprachig eingestellter moderner Browser bekommt foo.en.svg