Créez-y un sous-domaine VHost & Forward

8

Gourous de So

J'ai un simple fichier .htaccess où je redirige uniquement les non www vers www pour ma webapp. Maintenant, ce que je veux faire, c'est

  1. Créez un nouveau vhost comme http: //subdomain.mydomain.tld
  2. Créer une redirection pour toute personne venant de ce sous - domaine vers un dossier sur mon application comme app / webroot / subdomain

Mon .htaccess actuel ressemble à ceci

<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>

Comment pourrais-je m'y prendre? Puis-je faire tout cela dans mon fichier .htaccess ou dois-je également jouer avec GoDaddy? Je préfère ne pas le faire dans l'application, si cela a du sens.

J'utilise Ubuntu 10.04 + Apache 2.2.14-5

Merci


la source

Réponses:

18

Voici ce que vous devez mettre dans votre fichier .htaccess:

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]
Livre de Zeus
la source
Merci, dois-je d'abord configurer un vhost pour ce sous-domaine?
Vous pouvez toujours un vhost pour lui avec le même DocumentRoot que le WWW si vous le souhaitez. Vous pouvez également modifier le ServerAlias ​​de votre www vhost pour ajouter d'autres domaines, par exemple: ServerAlias ​​domain.com www.domain.com sub.domain.com.
Désolé, je suis un n00b avec apache2. Donc, 2 choses - 1. Je veux autoriser uniquement un sous-domaine fixe et non ([a-z0-9]) selon votre code, devrais-je simplement changer cela en ^ (sous)? 2. Comment puis-je configurer à nouveau le vhost (trop n00b pour vous? Désolé)?
1) voir ma réponse mise à jour. 2) Avez-vous créé une entrée de sous-domaine? L'avez-vous pointé au même endroit que le www?
1) Je le regarde et je ne trouve pas encore un seul changement, suis-je sérieusement perdu? 2) Rien d'autre dans ce fichier .htaccess mais ce que j'ai montré.