RegEx RewriteRule htaccess / apache: Dynmaisch Verzeichnis
KarlNoobie
- webserver
0 Bobby
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.
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