regular expression für rewirte rule
heinetz
- programmiertechnik
Hallo Forum,
ich habe folgende RewriteRule definiert:
RewriteCond %{HTTP_HOST} ^(.*)test_alias.leo.dev$ [NC]
RewriteRule ^(.*)$ http://%1test.leo.dev/?%2 [R=301,L]
Das leitet folgende Anfragen folgendermassen um:
test_alias.leo.dev -> http://test.leo.dev/
www.test_alias.leo.dev -> http://www.test.leo.dev/
sub.test_alias.leo.dev -> http://sub.test.leo.dev/
www.sub.test_alias.leo.dev -> http://www.sub.test.leo.dev/
... wie erwartet. Um nun Requests nach test_alias_zwei auch umzuleiten,
versuche ich die RewriteCond entsprechend anzupassen. Es gelingt mir
aber leider nicht ;(
Dazu müsste ich meines Erachtens statt fest den String "test_alias"
in den Regulären Ausdruck zu schreiben den String "test" negieren.
Meine Versuche scheitern aber alle ;(
RewriteCond %{HTTP_HOST} ^(.*)(!test).leo.dev$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)(!(test)).leo.dev$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)(![test]).leo.dev$ [NC]
Wie macht man das ?
danke für TIpps und
beste gruesse,
heinetz
Nächster Versuch:
RewriteCond %{HTTP_HOST} ^(.*)(?!test).leo.dev$ [NC]
und die Umleitung geschieht wie folgt:
http://test_alias.leo.dev -> http://test_alias.test.leo.dev/
Hallo Forum,
ich bin nun mittlerweile etwas weiter gekommen und weiss mir damit
zu helfen, mehrere Rules und Conditions zu kombinieren:
# Anfragen, die nicht Hauptdomian oder dessen Subdomian entsprechen
RewriteCond %{HTTP_HOST} !^(.*\.)?test\.leo\.dev$ [NC]
# (3rd Level wird in %1 gespeichert)
RewriteCond %{HTTP_HOST} ^(.*\.)?(.*)\.leo\.dev$ [NC]
# werden dorthin umgeleitet
RewriteRule ^(.*)$ http://%1test.leo.dev%{REQUEST_URI} [R=301,L]
# ... www vor der Subdomain wird umgeleitet nach Subdomain ohne www
RewriteCond %{HTTP_HOST} ^www\.(.*)\.test\.leo\.dev$ [NC]
RewriteRule ^(.*)$ http://%1.test.leo.dev%{REQUEST_URI} [R=301,L]
# ... weder www noch Subdomain wird nach www umgeleitet
RewriteCond %{HTTP_HOST} ^test\.leo\.dev$ [NC]
RewriteRule ^(.*)$ http://www.test.leo.dev%{REQUEST_URI} [R=301,L]
Es tut exakt, was es soll. Dass das optimal gelöst ist, wag ich selbst
zu bezweifeln. Was ich hier allerdings noch allgemeiner halten will,
ist der letzte Teil. Auf "leo.dev" enden die URLs in meiner Entwicklungs-
umgebung. Die Rules sollte im Idealfall allerdings auch live funktionieren.
Also genauso mit test.leo.dev wie mit test.com.
Kann mir jemand einen Tipp geben?
Die Konstrktion ([^.]*[.]?.*) tut's jedenfalls nicht ;(
beste gruesse,
heinetz