.htaccess Aufrufe abhängig von Domain in Unterordner leiten

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

.htaccess Aufrufe abhängig von Domain in Unterordner leiten

Postby sapp » 14. June 2011 22:32

Hallo,

Problem: ich verstehe nicht viel von .htaccess

Der Ordner /httpdocs enthält zwei Unterordner: /www und /login
Die Domains www.domain.de, bzw. domain.de und login.domain.de verweisen beide auf /httpdocs. Es soll jeweils auf den entsprechenden Unterordner weitergeleitet werden.
Bisher benutzte ich ein mod_rewrite
Code: Select all
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
welches ich auch für beide Domains beibehalten will.

Ich habe schon von den Variablen in .htaccess gelesen, aber irgendwie steig ich da nicht durch, diese Syntax ist mir ein Rätsel... Und Debugging geht ja auch nicht, entweder funktioniert es, oder man bekommt einen Server Error.

Verständnisfragen:
Code: Select all
#das erstellt die Variable "sub" und speichert z.b. von %{HTTP_HOST} (=login.domain.de)  "login" ?
SetEnvIfNoCase %{HTTP_HOST} (^[^.]+) sub

# so könnte die Variable verwendet werden?
RewriteCond %{ENV:sub}/%{REQUEST_FILENAME} !-f
RewriteRule . %{ENV:sub}/index.php [L]

Das habe ich probiert aber, es gibt eine 403 Forbidden Meldung.

Könnte ich PHP in der .htaccess verwenden, würde meine Lösung so aussehen:

Code: Select all
preg_match('(^[^.]+)' ,'%{HTTP_HOST}', $subdomain); # matched: [sub].domain.de

$dir = ($subdomain[0] == 'login') ? 'login' : 'www'; # gibt es sowas wie if/else in .htaccess?

RewriteCond %{ENV:$dir}/%{REQUEST_FILENAME} !-f # ist keine Datei
RewriteCond %{ENV:$dir}/%{REQUEST_FILENAME} !-d # ist kein Verzeichnis
RewriteRule . /%{ENV:$dir}/index.php 
ah, mir fällt gerade auf, daß so direkte Dateiaufrufe in die Ordner nicht beachtet werden. Macht man das dann so
Code: Select all
RewriteBase /%{ENV:$dir}
RewriteCond %{REQUEST_FILENAME} !-f # ist keine Datei
RewriteCond %{REQUEST_FILENAME} !-d # ist kein Verzeichnis
RewriteRule . /index.php
?

P.S. wenn die .htaccess ein "www." (aber nur, wenn keine Subdomain aufgerufen wird!) erzwingen [R301] würde, wäre das auch nicht schlecht...

Vielen Dank
sapp
 
Posts: 5
Joined: 14. June 2011 22:06

Re: .htaccess Aufrufe abhängig von Domain in Unterordner lei

Postby Nobbie » 14. June 2011 23:37

Was für ein unsäglicher Krampf!

Die Domains www.domain.de, bzw. domain.de und login.domain.de verweisen beide auf /httpdocs


Wieso änderst Du es nicht an dieser Stelle und läßt die jeweilige Domain auf den entsprechenden Ordner verweisen?
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: .htaccess Aufrufe abhängig von Domain in Unterordner lei

Postby sapp » 15. June 2011 00:38

Weil open_basedir dann jeweils auch auf den Ordner zeigt und ich mit PHP nicht auf Dateien der anderen Domain zugreifen kann.

Ich denke ein Krampf ist es nur, wenn man nicht weiß, wie es in .htaccess aussehen muß. Eigentlich habe ich es ja, man kann nur leider kein PHP in die .htaccess schreiben...
sapp
 
Posts: 5
Joined: 14. June 2011 22:06

Re: .htaccess Aufrufe abhängig von Domain in Unterordner lei

Postby Nobbie » 15. June 2011 10:24

sapp wrote:Weil open_basedir dann jeweils auch auf den Ordner zeigt und ich mit PHP nicht auf Dateien der anderen Domain zugreifen kann.


Dann nimm open_basedir doch raus, auch diese Direktive ist eine Krampflösung. Die braucht man ausschließlich nur dann, wenn man sich mit mehreren Unbekannten einen Server teilt und nicht im fcgid Modus betreiben will.

sapp wrote:Ich denke ein Krampf ist es nur, wenn man nicht weiß, wie es in .htaccess aussehen muß. Eigentlich habe ich es ja, man kann nur leider kein PHP in die .htaccess schreiben...


Nein, es ist Krampf weil es konzeptionell falsch ist. Wenn Du für verschiedene Domains verschiedene DocumentRoots haben möchtest (und das ist genau das, was Du willst), benutzt man VirtualHosts dafür. Dann hast Du auch erweiteret Möglichkeiten für das Logging und für das error reporting (das wird dann auch in getrennte Dateien geschrieben).
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: .htaccess Aufrufe abhängig von Domain in Unterordner lei

Postby sapp » 15. June 2011 10:44

Danke für die Antworten. Aber erstens bin ich nicht der Serveradministrator und zweitens habe ich ein bestimmtes Problem gestellt, das ich lösen muß:

.htaccess soll abhängig von der aufgerufenen Domain in einen Unterordner leiten

Wenn du nichts zu der Lösung beitragen kannst/möchtest, dann antworte bitte nicht in diesem Thread. Es gibt verschiedene Gründe, warum ich das auf diesem Weg brauche.

P.S.
Nobbie wrote:Dann nimm open_basedir doch raus,
Der Serveradministrator fragt, ob er nicht besser jedem das Root-Passwort geben soll.
Last edited by sapp on 15. June 2011 13:07, edited 1 time in total.
sapp
 
Posts: 5
Joined: 14. June 2011 22:06

Re: .htaccess Aufrufe abhängig von Domain in Unterordner lei

Postby sapp » 15. June 2011 12:43

soweit bin ich jetzt:
Code: Select all
#wenn HTTP_HOST mit "login" beginnt, Variable sub definieren und "login" zuweisen
SetEnvIfNoCase %{HTTP_HOST} ^login\.* sub=login

# wenn sub nicht definiert ist
<IfDefine !sub>
   SetEnvIfNoCase %{HTTP_HOST} .* sub=www
</IfDefine>
RewriteRule . /%{ENV:sub}/index.php [L]


allerdings wird so immer auf /www/index.php weitergeleitet, die erste Zeile (nicht der Kommentar) funktioniert anscheinend nicht.
sapp
 
Posts: 5
Joined: 14. June 2011 22:06

Re: .htaccess Aufrufe abhängig von Domain in Unterordner lei

Postby Nobbie » 15. June 2011 20:01

sapp wrote:Wenn du nichts zu der Lösung beitragen kannst/möchtest, dann antworte bitte nicht in diesem Thread


Ok. Kein Problem. Viel Glück mit den vielen anderen qualifizierten Antworten.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: .htaccess Aufrufe abhängig von Domain in Unterordner lei

Postby sapp » 15. June 2011 21:16

Mir ist schon klar, daß hier jetzt keiner mehr antwortet. Vielen Dank dafür. Aber Antworten, die am Thema vorbeigehen, sind auch nicht besser als keine Antworten.
sapp
 
Posts: 5
Joined: 14. June 2011 22:06


Return to Apache

Who is online

Users browsing this forum: No registered users and 3 guests