Apache: downloads.domain.com -> domain.com/downloads : nur mit mod_rewrite?
-
Hi Leute,
ich möchte alle Anfragen auf downloads.domain.com/* auf domain.com/downloads/* umleiten, also zb http://downloads.domain.com/datei.zip soll http://domain.com/downloads/datei.zip werden.
Muss ich dafür mod_rewrite verwenden oder geht es auch irgendwie anders?
Viele Grüße,
Daniel
-
EInen VirtualHost für die Domain download.domain.com einrichten, also wie auch für "domain.com" shcon einer existiert und dann in dem entsprechenden DocumentRoot eine Umleitung machen, Per PHP, HTML oder was auch immer.
-
Ich denke nicht, dass eine Umleitung hier tut, da ich das ja nicht für eine bestimmte Datei will, sondern für alle. Wie soll das im angegebenen Beispiel funktionieren, wenn jemand die URL http://downloads.domain.com/datei.zip direkt in seine Adresszeile eingibt?
-
Ach so, stimmt, das hatte ich übersehen. Dann setzt du den DocumentRoot des neuen VirtualHosts einfach auf das Downloads Verzeichnis.
-
Gegenfrage: was kannst du machen?
Wenn du nur gehostete Space hast, wird dir wahrscheinlich nur die ModRewrite-Variante übrigbleiben..
.htaccess schrieb:
RewriteEngine On
RewriteCond %{HTTP_HOST} sub.example.com $ [NC]
RewriteCond %{REQUEST_URI} !/sub_folder/
RewriteRule ^(.*)$ sub_folder/$1 [L]RewriteCond %{HTTP_HOST} !(^example.com $|^www.example.com ) [NC] RewriteRule ^\\.* /404.htm [L]
ErrorDocument 404 http://www.example.com/404.htm
(ungetestet)
hast du dagegen Zugriff auf Apache selber, ist ein neuer vhost, wie vom Weißbrot vorgeschlagen, die elegantere Methode
<VirtualHost *:80> ServerName www.sub.example.com ServerAlias sub.example.com *.sub.example.com DocumentRoot /www/example.com/sub_folder/ </VirtualHost>
-
Hallo zusammen,
ich habe vollen Root-Zugriff auf den Server.
Leider klappt das so nicht.
Da mehrere Domains von der selben Website bedient werden sollen habe ich einen VirtualHost * drin.
der neue VirtualHost downloads.domain.com steht zwar in der Datei vor dem -Host, wird aber trotzdem nicht ausgewertet. Und ein virtueller Host namens downloads. hat gleich garnicht funktioniert, da habe ich eine Fehlermeldung beim Apache-Restart bekommen...
Habt ihr noch ein paar Ideen?
-
Also du hast quasi einen VirtualHost mit
<VirtualHost *:80>
ServerName domain.com
ServerAlias *.domain.com
DocumentRoot /www/domain.com/public_html/
</VirtualHost>und willst einen Sonderfall von downloads.domain.com haben?
-
Nicht ganz.
der "allgemeine" virtuelle Host hat weder eine ServerName noch eine ServerAlias-Direktive. Der soll auch auf alles lauschen eben außer auf downloads.domain.com.
-
ok, habs.
Erst muss der virtuelle Host '' ohne ServerName stehen, dann der virtuelle Host '' mit ServerName downloads.domain.comDanke für die Hilfe

-
Ach so, ich dachte das * bezieht sich auf ServerName.
Das * in <VirtualHost *:80> steht für die IP des Netzwerkinterfaces.
-
ah. gut zu wissen
