Apache 2.2 Webserver Redirect Problem
schildi
- webserver
hallo,
ich suche eine möglichkeit, falls diese überhaupt existiert, um folgendes zu erreichen:
leite *.<domain>.<tld> nach www.<domain>.<tld> weiter.
also eine weiterleitung in abhängigkeit vom domain-namen.
im prinzip würde mir nur noch eine variable fehlen, die mir ausschließlich den 2nd level domain-namen zurückgibt.
den entsprechenden regulären ausdruck habe ich bereits, wenn man davon ausinge, dass man den regulären ausdruck auf den gesamten domainnamen anwenden würde:
ERSETZE ^([^.]*).(([^.]*?.?)+?([^.]+?)(..{1,4}))$ MIT www.$4$5
da ich ja aber bei einem RedirectMatch lediglich auf alles nach der domain prüfen kann, wäre eine denkbare lösung den 2nd-level domain-namen in den regexp einzubauen, falls man diesen irgendwie als variable (hier beispielhaft ${DOMAIN_2ND_LEVEL}) bereitstellen kann.
dann sähe das zb. so aus:
ERSETZE ^([^.]*).(([^.]*?.?)+?(${DOMAIN_2ND_LEVEL})(..{1,4}))$ MIT www.$4$5
vielleicht bin ich auch total auf dem holzweg. aber wäre schön, wenn es grundsätzlich eine lösung dafür gäbe.
gruß + danke
Hi,
ich suche eine möglichkeit, falls diese überhaupt existiert, um folgendes zu erreichen:
leite *.<domain>.<tld> nach www.<domain>.<tld> weiter.
also eine weiterleitung in abhängigkeit vom domain-namen.
Dann nutze mod_rewrite fuer die Weiterleitung.
Schau dir neben der RewriteRule- auch insb. die RewriteCond-Direktive an.
MfG ChrisB
Hi,
ich suche eine möglichkeit, falls diese überhaupt existiert, um folgendes zu erreichen:
leite *.<domain>.<tld> nach www.<domain>.<tld> weiter.
also eine weiterleitung in abhängigkeit vom domain-namen.Dann nutze mod_rewrite fuer die Weiterleitung.
Schau dir neben der RewriteRule- auch insb. die RewriteCond-Direktive an.
damit hab ichs auch schon versucht, leider ohne erfolg. ich kann damit ja zwar auf DOMAIN_NAME matchen, aber ich muss dann ja auch wissen, welcher domainname gematcht wurde. dieser ist mir in meinem zusammenhang unbekannt. es geht um eine generische grundlage.
MfG ChrisB
damit hab ichs auch schon versucht, leider ohne erfolg. ich kann damit ja zwar auf DOMAIN_NAME matchen, aber ich muss dann ja auch wissen, welcher domainname gematcht wurde.
wie wärs mit HTTP_HOST als feld zum matchen?
damit hab ichs auch schon versucht, leider ohne erfolg. ich kann damit ja zwar auf DOMAIN_NAME matchen, aber ich muss dann ja auch wissen, welcher domainname gematcht wurde.
wie wärs mit HTTP_HOST als feld zum matchen?
mm, das bringt mir doch nix? weil ich müsste ja ausschliesslich die 2nd domain in den regulären ausdruck einbinden. und ich kann ja immer nur die ganze variable verwenden - oder kann ich die manipulieren?
mm, das bringt mir doch nix? weil ich müsste ja ausschliesslich die 2nd domain in den regulären ausdruck einbinden. und ich kann ja immer nur die ganze variable verwenden - oder kann ich die manipulieren?
ich kann dir immer noch nicht ganz folgen - wenn eine bindung nicht zutrifft, greift doch automatisch die nächste
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^/$ /foo.bar [L]
RewriteCond %{HTTP_HOST} ^www.example.net$
RewriteRule ^/$ /foo.baz [L]
RewriteCond %{HTTP_HOST} ^www.(.*).net$
RewriteRule ^/$ /irgendwo [L]
RewriteCond %{HTTP_HOST} ^(.*)$
RewriteRule ^/$ /rest [L]
ich kann dir immer noch nicht ganz folgen - wenn eine bindung nicht zutrifft, greift doch automatisch die nächste
ich kenne die domain, die kommt nicht. ich muss den domain-namen überprüfen und für diesen domainnamen dann die änderung vornehmen. vgl. Bob, 26.01.2009, 20:22
ich kenne die domain, die kommt nicht.
aaah - das muss ich überlesen haben :) das is klar, dass dir mein vorschlag nix hilft
damit hab ichs auch schon versucht, leider ohne erfolg. ich kann damit ja zwar auf DOMAIN_NAME matchen, aber ich muss dann ja auch wissen, welcher domainname gematcht wurde.
wie wärs mit HTTP_HOST als feld zum matchen?
mm, das bringt mir doch nix? weil ich müsste ja ausschliesslich die 2nd domain in den regulären ausdruck einbinden. und ich kann ja immer nur die ganze variable verwenden - oder kann ich die manipulieren?
Du kannst auch in der Substitution der RewriteRule auf backreferences der letzten gematchten RewriteCond zugreifen; ist es das, was dir als Stück im Puzzle noch fehlt?
RewriteCond %{HTTP_HOST} ([^.]+).([^.]+.[^.]{2,5})$
RewriteCond %1 !=www
RewriteRule ^ http://www.%2/...
damit hab ichs auch schon versucht, leider ohne erfolg. ich kann damit ja zwar auf DOMAIN_NAME matchen, aber ich muss dann ja auch wissen, welcher domainname gematcht wurde.
wie wärs mit HTTP_HOST als feld zum matchen?
mm, das bringt mir doch nix? weil ich müsste ja ausschliesslich die 2nd domain in den regulären ausdruck einbinden. und ich kann ja immer nur die ganze variable verwenden - oder kann ich die manipulieren?
Du kannst auch in der Substitution der RewriteRule auf backreferences der letzten gematchten RewriteCond zugreifen; ist es das, was dir als Stück im Puzzle noch fehlt?
RewriteCond %{HTTP_HOST} ([^.]+).([^.]+.[^.]{2,5})$
RewriteCond %1 !=www
RewriteRule ^ http://www.%2/...
DAS wusste ich nicht! Danke! Damit sollte es gehen! Falls nicht, melde ich mich nochmal :]