Frage

Ich versuche, Anfragen für eine Wildcard-Domain in ein Unterverzeichnis umzuleiten.
dh. something.blah.domain.com --> blah.domain.com/something

Ich weiß nicht, wie ich den Namen der Subdomain zur Verwendung in der Rewrite-Regel bekomme.

Endgültige Lösung:

RewriteCond %{HTTP_HOST} !^blah\.domain\.com
RewriteCond %{HTTP_HOST} ^([^.]+)
RewriteRule ^(.*) /%1/$1 [L]

Oder wie Pilif betonte

RewriteCond %{HTTP_HOST} ^([^.]+)\.media\.xnet\.tk$
War es hilfreich?

Lösung

Das sollten Sie sich mal ansehen Leitfaden zum Umschreiben von URLs aus der Apache-Dokumentation.

Das Folgende ist ungetestet, sollte aber funktionieren:

RewriteCond %{HTTP_HOST} ^([^.]+)\.blah\.domain\.com$
RewriteRule ^/(.*)$           http://blah.domain.com/%1/$1 [L,R] 

Dies funktioniert nur, wenn die Subdomain keine Punkte enthält.Andernfalls müssten Sie den Regexp in RewriteCond so ändern, dass er mit jedem Zeichen übereinstimmt, das aufgrund der Verankerung noch funktionieren sollte, aber das fühlt sich sicherlich sicherer an.

Andere Tipps

Versuche dies:

RewriteCond %{HTTP_HOST} (.+)\.blah\.domain\.com
RewriteRule ^(.+)$ /%1/$1 [L]

@pilif (siehe Kommentar):Okay, das stimmt.Ich habe gerade eine .htaccess-Datei kopiert, die ich in einem meiner Projekte verwende.Ich schätze, es hat einen etwas anderen Ansatz :)

@Sam

Ihre RewriteCond-Zeile ist falsch.Die Erweiterung der Variablen wird mit %, nicht mit $ ausgelöst.

RewriteCond %{HTTP_HOST} ^([^\.]+)\.media\.xnet\.tk$
            ^

das sollte reichen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top