2010-04-08 4 views
0

La plupart des exemples montrent comment rediriger tout le trafic de sous-domaine vers un domaine principal, en conservant la structure de répertoires. Je ne le veux vraiment pas. Je souhaite rediriger tout le trafic de sous-domaine (le site disparaît) vers le domaine principal. Ce ne fonctionne pas:Utilisez htaccess pour rediriger tout le trafic du sous-domaine vers le domaine sans conserver la structure du répertoire

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/ [R=301,L] 

Qu'est-ce qui se passe, est si vous allez à ceci:

http://sub.newdomain.com/some/path/

Vous obtenez ceci:

http://www.newdomain.com/some/path/

Je veux tout d'aller à la racine.

Répondre

1

Que diriez-vous d'une simple redirection 301 dans le fichier de configuration Apache pour le sous-domaine?

Pour rediriger tous les fichiers sur votre domaine utilisez dans votre fichier .htaccess si vous êtes sur un serveur web unix:

redirectMatch 301 ^(.*)$ http://www.domain.com 
redirectMatch permanent ^(.*)$ http://www.domain.com 

et un autre exemple

Si vous avez besoin de rediriger http://mysite.com à http://www.mysite.com et vous avez mod_rewrite activé sur votre serveur, vous pouvez mettre cela dans votre fichier .htaccess:

EDIT: Si vous souhaitez utiliser thi s, supprimez simplement le $ 1 des règles dans le lien exemple fourni si la première option ci-dessus ne fonctionne pas.

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example\.com 
RewriteRule ^(.*)$ http://www.example.com/ [R=permanent,L] 

ou ceci:.

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/ [R=301,L] 

Ces extraits de here

1

Il suffit d'ajouter un point d'interrogation à la fin de l'URL de destination si vous voulez exclure toutes les informations de fuite (par exemple la structure de répertoire , paramètres).

Dans votre exemple, il serait tout simplement mis à jour à ceci:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://www.newdomain.com/? [R=301,L] 
0

Cela gère les sous-domaines génériques, et le cas où le client met www avant subdomain

# wildcard.domain.com -> www.domain.com/wildcard 
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC] 
RewriteCond %1 !^(www)$ [NC] 
RewriteCond %1 !^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/%1/ [R=301,L] 

# www.wildcard.domain.com -> www.domain.com/wildcard 
RewriteCond %{HTTP_HOST} ^(www\.(.*))\.domain\.com$ [NC] 
RewriteCond %1 !^www$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/%2 [R=301,L] 
Questions connexes