Zur Navigation

htaccess - dynamische Subdomains

1 C)-(iLL@

Hallo,

ich schneie nach längerer Zeit wieder mit einem Problem rein, ich hoffe, man verzeiht mir meine Abwesenheit. Hier wurde ich bisher am besten geholfen :)


Folgende Nuss habe ich zu knacken, und hab keine Ahnung, wie ich das anstellen könnte:

Momentan wird auf einer Domain jeder Request an index.php umgeleitet, beispielsweise 'http://domain.com/tools/css.html':

RewriteEngine on
RewriteRule !\.(php|gif|jpg|png|swf|js|css)$ http://domain.com/index.php

Die Seitenadresse wird dann in index.php ausgewertet, und aus der DB die entsprechenden Daten selektiert. Soweit, sogut.

Wie kann ich es jetzt ermöglichen, dass _jede_ Subdomain auch an index.php umgeleitet wird, ohne dieses Verhalten zu beeinträchtigen? Also beispielsweise

http://foo.domain.com/tools/css.html

'foo' soll hier egal sein, könnte genauso 'bar' sein, das weiß ich von vornherein nicht. Deshalb kann ich das nicht direkt in die .htaccess schreiben. In Index.php soll es dann möglich sein, sowohl /tools/css.html und die Subdomain über die $_SERVER-Variablen auszulesen.

Geht das überhaupt oder spinn ich nur rum?

Vielen Dank für jeden Tip,
Rudy

20.02.2006 23:37

2 Jörg

Hallo Rudy,

schön mal wieder von dir zu lesen :)

Wohin soll die http://foo.domain.com/tools/css.html soll weiterleiten - auf http://domain.com/index.php? Das tut sie mit der angegebenen Rule ja bereits? Oder auf http://foo.domain.com/index.php? Folgende Rule würde das bewirken:

RewriteEngine on
RewriteRule !\.(php|gif|jpg|png|swf|js|css)$ index.php

Allerdings steht dann nicht die index.php in der Adresszeile des Browsers. Sollte dort http://foo.domain.com/index.php stehen, könnte man das vielleicht so erreichen:

RewriteEngine on
RewriteRule !\.(php|gif|jpg|png|swf|js|css)$ http://%{HTTP_HOST}/index.php

21.02.2006 00:24

3 C)-(iLL@

Hallo Jörg!
schön mal wieder von dir zu lesen :)
Jo, ich verfolg viele interessante Sachen hier über RSS, so vergesse ich dieses Forum nie :)


Wohin soll die http://foo.domain.com/tools/css.html soll weiterleiten - auf http://domain.com/index.php? Das tut sie mit der angegebenen Rule ja bereits? Oder auf http://foo.domain.com/index.php?

Ich möchte in der Adressleiste http://foo.domain.com/bla/blubb.html sehen, der Servername $_SERVER['SERVER_NAME'] sollte 'foo.domain.com' zeigen, $_SERVER['REDIRECT_URL'] müsste den Wert '/bla/blubb.html' haben (letzteres funktioniert bereits, wenn ich keine Subdomains verwende). Intern soll dies von http://domain.com/index.php abgearbeitet werden, davon bekommt der User aber nichts mit. Der soll nicht mal wissen, dass er ein PHP-Programm sieht :)

Das Problem ist, wenn ich eine Subdomain anwähle, dann bekomme ich einen 'Seiten-Ladefehler' (FF), also nix gefunden. Die aktuelle Rule scheint bei Subdomains nicht zu greifen.

Ist der Server nicht für Subdomains geeignet bzw. lässt er sie aufgrund der Konfiguration nicht zu? Ich habe darauf leider keinen Shell-Zugriff. Was wäre, wenn ich Shell-Zugriff hätte - wo könnte ich das nachsehen bzw. wie könnte ich das ändern?

Edit: ich glaube die Antwort auf letzteres habe ich gefunden: Dynamic Virtual Hosts Klingt aber nicht sehr ermutigend, an die httpd.conf komme ich nicht ran :(

21.02.2006 14:53 | geändert: 21.02.2006 15:07

4 Jörg

Also eine Rule mit "Catch all" der Subdomains? Ohne Änderung der httpd.conf wüsste ich auch keinen Lösungsansatz...

21.02.2006 21:33 | geändert: 21.02.2006 21:34

5 C)-(iLL@

Alles klar - es geht nicht ohne. Vielen Dank trotzdem :)

23.02.2006 12:20

Beitrag schreiben (als Gast)





[BBCode-Hilfe]