2009-10-08 5 views
2

Si je vais à http://www.example.com je veux qu'il reste là, ce qui fonctionne très bien.
Si je vais à http://bar.example.com il redirige vers http://www..com, ce qui est faux
Je veux pour aller à http://www.example.com étant donné la backreference dans le RewriteCondRewriteCond backreference ne fonctionne pas

 
RewriteEngine On 

RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www.(example).com [NC] 
RewriteRule ^(.*)   http://www.%1.com/$1 [L,R] 

Ubuntu 8.04
Paquet: apache2-mpm-prefork
architecture: i386
version: 2.2.8-1

Répondre

3

modèles niées ont pas de correspondance et donc vous ne pouvez pas faire référence à un groupe de ce match inexistant.

Mais essayez cette règle à la place:

RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] 
RewriteRule ^(.*) http://www.example.com/$1 [L,R=301] 
+0

motif nié Ahh. Tout s'explique maintenant. Merci! – er1234

0

Votre état d OES ne pas correspondre bar.mysite.com:

RewriteCond %{HTTP_HOST} !^www.(mysite).com [NC] 

Vous devez changer pour correspondre afin d'obtenir le fonctionnement de backreference:

RewriteCond %{HTTP_HOST} !^[^\.]+\.(mysite)\.com [NC]