Zur Navigation

Mehrere Domains per htaccess 301 unterschiedl. weiterleiten [2]

11 Tim (Gast)

Hallo Jörg,

meine serverinterne Weiterleitung einer Subdomain auf die index.php meiner Hauptdomain mit diesem Code funktioniert *fast*:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.hauptdomain\.de
RewriteRule ^$ http://%{HTTP_HOST}/verzeichnis/index.php?preferenced=abc [L]

Im Browser-Adressfenster wechselt subdomain.hauptdomain.de wunschgemäß zu subdomain.hauptdomain.de/verzeichnis/index.php?preferenced=abc.

Aber: Ab diesem Moment melden sowohl die Hauptdomain als auch die Sudmonain folgenden Fehler:
Forbidden. You don't have permission to access /verzeichnis/index.php on this server.

Hast Du da eine Idee? Viele Grüße! Tim

31.05.2007 13:32

12 Jörg Kruse

Hallo Tim,

gibt es diese URL denn auch unabhängig von der RewriteRule:

subdomain.hauptdomain.de/verzeichnis/index.php?preferenced=abc

Du schreibst von serverinternen WEiterleitung, was genau meinst du damit? Möchtest du nur intern die URL umschreiben oder möchtest du richtig weiterleiten? Wenn auf der rechten Seite der RewriteRule eine http-Adresse angegeben ist, dann leitest du weiter auf diese URL - sie sollte dann auch ohne diese RewriteRule schon existent und zugänglich sein

31.05.2007 14:10

13 Tim (Gast)

Hallo Jörg,

ja, die URL funktioniert unabhängig von der RewriteRule, da subdomain.hauptdomain.de einfach auf www.hauptdomain.de geroutet wird.

Ich will eigentlich nur erreichen, dass der User statt subdomain.hauptdomain.de/verzeichnis/index.php?preferenced=abc nur noch subdomain.hauptdomain.de eingeben muss.

Die User, die aber www.hauptdomain.de eingeben, sollen weiterhin woanders landen.

31.05.2007 14:44

14 Jörg Kruse

Ich will eigentlich nur erreichen, dass der User statt subdomain.hauptdomain.de/verzeichnis/index.php?preferenced=abc nur noch subdomain.hauptdomain.de eingeben muss.

Also eine Umschreibung der URL - dann solltest du nicht über HTTP weiterleiten, sondern nur den Pfad angeben, probier es mal folgendermaßen:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.hauptdomain\.de
RewriteBase /
RewriteRule ^$ verzeichnis/index.php?preferenced=abc [L]

31.05.2007 15:00 | geändert: 31.05.2007 15:01

15 Tim (Gast)

Das führt leider zum gleichen Ergebnis. Ich komme anscheinend einfach nicht in das Unterverzeichnis rein. Alternativ probiere ich jetzt mal auf eine Index.html umzuleiten, die den Aufruf dann besorgt. Vielleicht klappt das ...

Tim

31.05.2007 15:31

16 Tim (Gast)

Okay, es wird klarer: Sobald ich (irgend) eine .htaccess-Datei im Verzeichnis habe, wird der Zugriff auf das darin befindliche Unterverzeichnis gesperrt. Das ist das ganze Problem. Ich werde mal mit meinem Provider sprechen - oder kann das auch eine Einstellungsfrage in der .htaccess-Datei sein?

31.05.2007 15:53

17 Jörg Kruse

Die 403 ("Forbidden") könnte auch noch darauf zurückzugführen sein, dass auf deinem Webspace die Option FollowSymLinks deaktiviert ist, so dass RewriteRules nicht ausgeführt werden dürfen. Probier mal das aus:

Options +FollowSymlinks

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.hauptdomain\.de
RewriteBase /
RewriteRule ^$ verzeichnis/index.php?preferenced=abc [L]

31.05.2007 15:53 | geändert: 31.05.2007 15:54

18 Tim (Gast)

Ein Teil des Problems kam tatsächlich von der Option Options +FollowSymlinks, danke! Die Zugriffsprobleme sind jetzt weg, aber der Server reagiert auf die RewriteRule nicht.

Ich habe den Verdacht, dass es an der RewriteCond liegt. Die Situation:

Provider 1 hostet die Hauptdomain www.hauptdomain.de und routet Subdomain-Anfragen zu Provider 2.

Dort versuche ich jetzt über

RewriteCond %{HTTP_HOST} ^(www\.)?subdomain1\.hauptdomain\.de
RewriteRule ^$ verzeichnis/index.php?preferenced=abc [L]

RewriteCond %{HTTP_HOST} ^(www\.)?subdomain2\.hauptdomain\.de
RewriteRule ^$ verzeichnis/index.php?preferenced=def [L]

(...)

die jeweils angeforderte Subdomains abzufragen und entsprechend umzuleiten. Brauche ich evt. etwas anderes als {HTTP_HOST}?

31.05.2007 17:52

19 Tim (Gast)

Ach nochwas, die Subdomains liegen alle auf dem gleichen Server und die Umleitung soll dort intern stattfinden.

31.05.2007 17:54

20 Jörg Kruse

Die Zugriffsprobleme sind jetzt weg, aber der Server reagiert auf die RewriteRule nicht.

Wenn er gar nicht reagiert, könnte dies bedeuten, dass er das Muster "^$" nicht erkennt. Versuche es mal mit der Angabe einer RewriteBase

RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain1\.hauptdomain\.de
RewriteRule ^$ verzeichnis/index.php?preferenced=abc [L]

Provider 1 hostet die Hauptdomain www.hauptdomain.de und routet Subdomain-Anfragen zu Provider 2.

Heißt das, dass das Verzeichnis "verzeichnis" auf dem Webspace von Provider 1 liegt? In solch einem Fal müsste man dann eventuell doch eine Weiterleitung über HTTP wählen, wobei die URL in der Adresszeile des Browsers sich dann allerdings ändern würde

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.hauptdomain\.de
RewriteRule ^$ http://%{HTTP_HOST}/verzeichnis/index.php?preferenced=abc [L]

31.05.2007 18:04 | geändert: 31.05.2007 18:06