heinetz: regular expression für rewirte rule

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

  1. 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/

  2. 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