Subdomains per .htaccess weiter bzw. umleiten

Hallo,

ich suche schon lange nach einer Lösung für dieses Problem.

Also die Hauptseite liegt im selber Verzeichnis in das die catch-all *.domain.de über die vhost geleitet wird.

Also die Subdomains sind vom Aufbau alle so:

www.name1.domain.de
www.name2.domain.de
www.xyz1.domain.de
www.xyz2.domain.de

also immer mit www am Anfang und dann kommt der entscheidende Teil,
und die Daten dazu liegen dann in den Ordnern:

www.name1/httpdocs
www.name2/httpdocs
www.xyz1/httpdocs
www.xyz2/httpdocs

Nun möchte ich das beim Aufruf von www.name1.domain.de die Daten aus dem Ordner www.name1/httpdocs aber in der Adressleiste vom Browser soll natürlich www.name1.domain.de stehen bleiben bzw…

möchte ich das beim Aufruf von http://www.name1.domain.de/test…e/test.php die Daten aus dem Ordner http://www.name1/httpdocs/test…s/test.php aber in der Adressleiste vom Browser soll natürlich http://www.name1.domain.de/test…e/test.php stehen bleiben.

Das ganze würde ich gerne per .htaccess lösen, aber ich bekomme es nicht hin.

So ich weiß nicht wie ich es besser erklären soll :wink:

Liebe Grüße Powels

Hallo,

mod rewrite ist die Lösung.
Vorausgesetzt, dass das Modul bei deinem Provider installiert ist.

Siehe: http://stackoverflow.com/questions/8490184/htaccess-…

Sollte das nicht gehen, wäre der Weg über PHP eine Möglichkeit.

Gruß Mirko
http://meichsner.tel

Hallo Mirko,

ich betreibe eigene Rootserver, auf diesen ist mod rewrite immer aktieviert, ich habe schon anderen Probleme per mod rewrite gelöst.

Die Anleitung in deinem Link ist gut, aber damit komme ich nicht weiter, weil meine Hauptseite, also www.domain.de, nicht in dem Verzeichnis der catch-all subdomains liegt, somit ist die www Regel hinfällig.

Und genau da ist der Hund begraben, weil meine Subdomains alle mit www. anfangen und erst dann der entscheidende kommt bzw. für die Subdomain „www.abc1.domain.de“ liegen die Dateien im Ordner „www.abc1/httpdocs“.

Und wegen dem www vor jeder Subdomain funktioniert die Regel hinter deinem Link nicht.

Danke aber für die Antwort.

Liebe Grüße Powels

Hier eine Anleitung :

http://lmgtfy.com/?q=.htaccess+rewrite+rules

Hallo !

Er betreibt also eigene Root-Server hmmm…

Warum soll der Kram per .htaccess gelöst werden ?

Wenn alles nicht hilft, wäre eventuell ein Link die Lösung.
sihe: https://wiki.archlinux.de/title/Ln

Ich habe u.a. auch jede Menge
Subdomains, die aus einer DB stammen und werte die per PHP aus.
Wenn eine Subdomain nicht festgelegt ist bzw. existent ist, schicke ich einen Header mit einem 404 und gut is.

Schau mal…
http://cottbus.webentwicklung-brandenburg.de
http://spremberg.webentwicklung-brandenburg.de/
http://senftenberg.webentwicklung-brandenburg.de/

oder halt nur
http://webentwicklung-brandenburg.de/

Mittels include kannst Du Dir ja alles rein holen, was du brauchst.

Nur mal so als Vorschlag :smile:)

Gruß Mirko
http://meichsner.tel

Super tolle Antwort, dann zeig mir mal auch nur ein Ergebnis bei Google welches mit Subdomains mit www davor funktioniert.

Hallo Mirko,

per htaccess weil, wenn mal neue Subdomains angelegt werden, oder welche gelöscht werden, müssen nur Ordner aufgespielt oder vom Server gelöscht werden, alles ganz einfach ohne eine Datenbank mit bearbeiten zu müssen. Außerdem wenn die Nutzer der Ordner was ändern muss ich nicht immer Angst haben das sie die PHP Scripte löschen.

Liebe Grüße

Powels

Hallo Powels,

ich kann Dir zwar nicht die Lösung fertig präsentieren. Der Schlüssel für die Lösung liegt in 2 Dingen:
a) Du benötigst eine Wildcard Domain (Catch-All Domain)
b) mod_rewrite löst das Problem.

Deine .htaccess muss dan sowas in der folgenden Art enthalten:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} ^([^.])+.domain.tld.tld$ [NC]
RewriteRule ^(.*)$ /%1/$1 [L]

Mehr Details dazu findest Du bei Google und den Suchworten subdomain mod_rewrite

Gruß

Hallo,

probieren kann ich es hier nicht, ist aus dem RewriteGuide rauskopiert und etwas vereinfacht:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^$
RewriteCond ${lowercase:%{HTTP_HOST}|NONE} ^(.+).domain.de$
RewriteRule ^/(.*)$ %1/httpdocs/$1 [NC]

In die letzte Zeile muss evtl. der komplette Pfad im Filesystem…

Hallo Klaus,

a) Ist bereits erledigt
b) Ist der Plan

Solche ähnlichen oder gleichen Einträge habe bzw. hatte ich schon in meiner htaccess, das Problem ist irgendwie immer das www. in der Subdomain, es geht leider nicht ohne, da die Subdomains und Ordner schon existieren und von anderen Seiten verknüpft sind.

Aber trotzdem danke für deine Antwort, ich werde noch mal etwas rumtesten.

Nabend,

für diesen Fall gibt es bei Apache und ich gehe mal davon aus, dass Du den nutzt sogenannte VHosts.

Wo ist also das Problem ein Script zu schreiben, was nach belieben VHosts anlegt oder wieder löscht ?

Daher hatte ich anfänglich auch gedacht, dass Du Deinen
Auftritt bei einem Provider hast.

So nach dem Motto:
If Verzeichnis da, dann leg den VHost an.
Das ganze als Cronjob und gut is :smile:)

Gruß Mirko
http://meichsner.tel

Hallo alx,

danke für die Antwort, ledier ohne Erfolg, laut error_log wird nicht in den passenden Ordner weitergeleitet, sondern im Hauptordner nach den Dateien gesucht.

LG Powels

Du könntest mal RewriteLog anschalten um zu schauen, was passiert.
Die hier so komisch umgebrochene RewriteCond hast du in einer Zeile ?

Das ist per .htaccess nur sehr Umständlich über Rewrite-Rules zu lösen. Sehr sehr schwer und sehr sehr Fehleranfällig. Macht keinen Spaß und ist wahnsinnig ineffizient.

Viel einfacher ist es einen Hoster zu suchen, der die DocumentRoots der Subdomains direkt auf Unterverzeichnisse setzen kann.

Allen voran die großen Marken: 1und1, Strato, Hetzner.
Aber auch jeder Billig-Anbieter der Hosting per Plesk-Panel anbietet.

huschi.

Ich möchte mich noch bei Allen bedanken die sich wegen mir Mühen gemacht haben, aber ich habe die Sache nun doch per php gelöst.

LG Powels

Das wird AFAIR so nicht gehen bzw. macht es keinen Sinn.

Für die Subdomains solltest Du eigene vhost Einträge im apache Webserver erstellen welche auf das entsprechende Verzeichnis zeigt und namensbasierte vhosts aktivieren

NameVirtualHost *:80

ServerName www.name1.domain.de
DocumentRoot /www.name1/httpdocs

ServerName www.xyz1.domain.de
DocumentRoot /www.xyz1/httpdocs

Mit der .htaccess könntest Du in redirect erstellen, dann steht aber auch nicht der (sub)domain Name im der Adresszeile.

Liebe/-r Experte/-in,

als erstes sollten mal die passenden virtuellen Hosts eingerichtet sein, ich denke nicht, dass das in der .htaccess funktioniert, da meines Wissens .htaccess nur in virtuellen Hosts selber wirkt.

Sind die passenden Sub-Domains im DNS eingetragen?

Gruß
Tim

Moin Powels,

leider muss ich den Thema passen. Die .htaccess sagt mir natuerlich was, aber meine Kenntnisse um die Moeglichkeiten mit diesem Feature sind nicht wirklich umfassend. So wie ich das in Deinem Post lese, weisst Du da schon mehr als ich. :wink:

Viele Gruesse
Preacher