SubDomain forwarden mit mod_rewrite?

Alles, was den Apache betrifft, kann hier besprochen werden.

SubDomain forwarden mit mod_rewrite?

Postby Clubby » 04. November 2004 01:40

Hallo,

und zwar hab ich die Domain clubby.dyndns.org und möchte nun Anfragen an info.clubby.dyndns.org in ein bestimmtes Verzeichnis umleiten und zwar sollten dann sowohl

info.clubby.dyndns.org
also auch
clubby.dyndns.org/info

die selbe Seite anzeigen.

Das ist soweit noch einfach, indem ich für info.clubby.dyndns.org einen Virtual Host anlege und das DocumentRoot veränder. Das Problem ist nun aber das es sich um eine SSL Seite handelt und wenn ich von clubby.dyndns.org/info darauf zugreife geht alles, da die Domain mit der Domain des Zertifikates übereinstimmt. Beim Zugriff auf info.clubby.dyndns.org kommt aber die Meldung, das die Domains nicht übereinstimmen und jetzt meine Frage, kann ich hier eventuell mit mod_rewrite den Request ändern? Wenn ja, wie?

Und bitte keine Antworten wie ich soll im Forum schauen, das hab ich gemacht, aber keine für mich passende Antwort gefunden bzw. es hat nicht funktioniert.

Meine Ansatz in der httpd.conf sieht folgendermaßen aus:

Code: Select all
NameVirtualHost clubby.dyndns.org:80

<VirtualHost clubby.dyndns.org:80>
DocumentRoot "e:/apache2/htdocs"
ServerName clubby.dyndns.org:80
</VirtualHost>

<VirtualHost clubby.dyndns.org:80>
DocumentRoot "e:/apache2/htdocs/info"
ServerName info.clubby.dyndns.org:80
</VirtualHost>


Wenn man das Problem auch andersweitig lösen kann, soll es mir recht sein. Ich möchte eigentlich nur die subdomain umleiten.

Gruß,
Oliver
Clubby
 
Posts: 5
Joined: 04. November 2004 01:13

Re: SubDomain forwarden mit mod_rewrite?

Postby juergen&lx » 04. November 2004 01:51

Clubby wrote:Meine Ansatz in der httpd.conf sieht folgendermaßen aus:

NameVirtualHost clubby.dyndns.org:80

<VirtualHost clubby.dyndns.org:80>
DocumentRoot "e:/apache2/htdocs"
ServerName clubby.dyndns.org:80
</VirtualHost>

<VirtualHost clubby.dyndns.org:80>
DocumentRoot "e:/apache2/htdocs/info"
ServerName info.clubby.dyndns.org:80
</VirtualHost>

Ändere mal nachstehendes:
Code: Select all
NameVirtualHost #IP von localhost ohne port
<VirtualHost #IP von localhost ohne port>
DocumentRoot "e:/apache2/htdocs"
ServerName clubby.dyndns.org
</VirtualHost>

<VirtualHost #IP von localhost ohne port>
DocumentRoot "e:/apache2/htdocs/info"
ServerName info.clubby.dyndns.org
</VirtualHost>


mfg
Jürgen
juergen&lx
 
Posts: 154
Joined: 18. February 2004 21:36
Location: in einem Dorf am Rande des Strombergs
Operating System: Linux

Postby Clubby » 04. November 2004 14:40

Das kann ich leider nicht, da ich keine feste IP-Adresse habe.

Aber das würde ja auch nix ändern, die Adresse von der aufgerufen wird bleibt ja info.clubby.dyndns.org. Wie gesagt der Forward funktioniert einwandfrei, nur stimmt die Domain der aufrufenden Seite nicht mit der Domain des Zertifikates (clubby.dyndns.org) überein. Deshalb die Frage ob ich das mit mod_rewrite nicht irgendwie umbiegen kann.
Clubby
 
Posts: 5
Joined: 04. November 2004 01:13

Postby Clubby » 10. November 2004 00:00

Ich habe es nun hingekriegt via PHP Skript:

strpos($HTTP_SERVER_VARS["HTTP_HOST"], "info.") !== false)
header('location:http://clubby.dyndns.org/info);

aber das gilt natürlich nur wenn das PHP Skript auch wirklich aufgerufen wird.

Wie kann ich das den mit mod_rewrite machen? Kann mir niemand weiterhelfen?
Clubby
 
Posts: 5
Joined: 04. November 2004 01:13

Postby NickiGraus » 11. November 2004 11:50

Code: Select all
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.+)   info.php    [QSA]
</IfModule>


sollte alle aufrufe innerhalb des verzeichniss, wo die .htaccess steht auf
dein script info.php umleiten.

falls du so was meinst ??
Es ist ein Beweis der Bildung, die größten Dinge auf die einfachste Art zu sagen.

RW Emerson

Image
User avatar
NickiGraus
 
Posts: 40
Joined: 05. May 2004 12:49
Location: Irland

Postby Clubby » 11. November 2004 12:03

Nein, hatte eher sowas gesucht, aber habs nun hingekriegt

Code: Select all
RewriteCond %{HTTP_HOST}   ^info  [NC]
RewriteRule .*   clubby.dyndns.org/info   [R=307,L]


wenn ich diese Regel am Ende von httpd.conf angebe, so gilt sie nur für den "Standard"-Host, aber nicht für irgendwelche VirtualHosts. Gibt es denn ne Möglichkeit, dass sie immer ausgeführt wird? Oder muss ich dann die Regel in .htaccess ausalgern?
Clubby
 
Posts: 5
Joined: 04. November 2004 01:13

Postby NickiGraus » 11. November 2004 18:45

Code: Select all
RewriteCond %{HTTP_HOST}   ^info(.+)$  [NC]
RewriteRule (.*)   clubby.dyndns.org/info   [L]


bin mir aber nicht sicher.... :)
Es ist ein Beweis der Bildung, die größten Dinge auf die einfachste Art zu sagen.

RW Emerson

Image
User avatar
NickiGraus
 
Posts: 40
Joined: 05. May 2004 12:49
Location: Irland

Postby Clubby » 11. November 2004 22:23

Hallo,

da ist kein Unterschied, ist die selbe Regel....

ich habe als Standard Host localhost und über VirtualHost clubby.dyndns.org hinzugefügt. Die Rewrite Rule scheint nur auf localhost bzw. info.localhost zu wirken, wenn ich sie allerdings nochmals innerhalb der VirtualHost Direktive schreibe, wirkt sie auch auf info.clubby.dyndns.org....

aber ist ja nicht so schlimm, weis ja wies geht....finde ich trotzdem doof das es keine globale Rule geben kann. Werde bei Gelegenheit die Regel in eine .htaccess Datei auslagern, vielleicht funktioniert das dann.
Clubby
 
Posts: 5
Joined: 04. November 2004 01:13


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests