KarlNoobie: RegEx RewriteRule htaccess / apache: Dynmaisch Verzeichnis

Hallo

Ich möchte, dass alle Verzeichnisse, welche ohne Slash (Schrägstrich) oder mit Slash aber ohne Dateiname aufgerufen werden, mittels 301 Weitergeleitet werden. Über den Apache Webserver und htaccess weiss ich, wie dies für ein einzelnes Verzeichnis geht:

RewriteRule ^m/verzeichnis$ /m/verzeichnis/index.html? [R=301,L]
RewriteRule ^m/verzeichnis/$ /m/verzeichnis/index.html? [R=301,L]

Dies klappt wunderbar. Nun möchte ich dies dynamisch machen, damit ich nicht für jedes einzelne Verzeichnis 2 Einträge machen muss.

Ich kriege dies mit Regex einfach nicht hin.
Wichtig ist mir noch, dass nur Verzeichnisse weitergeleitet werden, und nicht Dateien / URL mit .html am Ende. Also nicht /m/verzeichnis.html

Ich wäre um Hilfe sehr dankbar. Kenne mich leider mit RegEx nicht wirklich aus.

Vielen Dank und Grüsse
KarlNoobie

P.s. das /m/ ist das erste Verzeichnis, welche via CMS immer erzwungen wird und existiert. Dies stimmt so.

  1. Moin

    beschäftige dich mit RewriteConds, und der Möglichkeit auf Nicht-Vorhandensein einer speziellen Zeichenkette zu prüfen

    weiter beschäftige dich mit Alternativen in der RewriteCond

    ungefähr so (nicht getestet!!!!):

    RewriteCond %{REQUEST_URI} !^.*(.htm|.\html)$
    RewriteRule ^(.*)$ /m/verzeichnis/index.html? [R=301,L]

    damit wird alles umgeleitet was nicht ".html" oder ".htm" als Endung hat

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    ### Henry L. Mencken ###
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ## Viktor Frankl ###
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)