Erstellen Sie eine VHost & Forward-Subdomain

8

Gurus von So.

Ich habe eine einfache .htaccess-Datei, in der ich für meine Webanwendung nur nicht www zu www umleitung. Was ich jetzt tun möchte, ist

  1. Erstellen Sie einen neuen vhost wie http: //subdomain.mydomain.tld
  2. Erstellen Sie eine Weiterleitung für alle Personen, die zu dieser Subdomain kommen, in einen Ordner in meiner App wie app / webroot / subdomain

Mein aktueller .htaccess sieht so aus

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www\.mydomain\.tld [NC]
    RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301.L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app/webroot/$1 [QSA,L]
</IfModule>

Wie würde ich vorgehen? Kann ich das alles in meiner .htaccess-Datei machen oder muss ich mich auch mit GoDaddy anlegen? Ich mache das lieber nicht in der App, wenn das Sinn macht.

Ich verwende Ubuntu 10.04 + Apache 2.2.14-5

Vielen Dank


quelle

Antworten:

18

Folgendes müssen Sie in Ihre .htaccess-Datei einfügen:

RewriteEngine on
# redirect mydomain.tld to www.mydomain.tld
RewriteCond %{HTTP_HOST} ^mydomain\.tld [NC]
RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L]

# default website
RewriteCond %{HTTP_HOST} ^www\.mydomain\.tld$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app/webroot/$1 [NC,QSA,L]

# subdomain to folder
RewriteCond %{HTTP_HOST} ^(sub|subfolder)\.domain\.com$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)/?$ http://www.domain.com/%1/$1 [NC,QSA,L]
Buch des Zeus
quelle
Vielen Dank. Muss ich zuerst einen vhost für diese Subdomain einrichten?
Sie können jederzeit einen vhost dafür mit demselben DocumentRoot wie das WWW erstellen, wenn Sie möchten. Sie können auch die ServerAlias ​​Ihres www vhost ändern, um weitere Domains hinzuzufügen, z. B.: ServerAlias ​​domain.com www.domain.com sub.domain.com.
Sorry, bin ein n00b mit apache2. Also, 2 Dinge - 1. Ich möchte nur eine feste Subdomain zulassen und nicht ([a-z0-9]) gemäß Ihrem Code. Sollte ich das einfach in ^ (Sub) ändern? 2. Wie richte ich den vhost wieder ein (zu n00b für dich? Entschuldigung)?
1) Meine aktualisierte Antwort anzeigen. 2) Haben Sie einen Subdomain-Eintrag erstellt? Haben Sie es auf den gleichen Ort wie das WWW verwiesen?
1) Ich starre darauf und kann noch keine einzige Änderung finden. Bin ich ernsthaft verloren? 2) Nichts anderes in dieser .htaccess-Datei als das, was ich gezeigt habe.