2009-08-24 4 views
0

J'ai le script:Comment rediriger les demandes entrantes de domain.com vers www.domain.com via HTTP et HTTPS en utilisant .htaccess?

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

règle de réécriture pour rediriger/ancien vers/nouvelle

RewriteCond %{REQUEST_URI} ^/old$ 
RewriteRule . /new [L,R=301] 

qui redirige http://example.com-http://www.example.com, mais je voudrais que ce script fonctionne même si un utilisateur demande l'URL via HTTPS? Je n'arrive pas à trouver une solution n'importe où .... =/

Vous avez des idées?

Merci

+0

Etes-vous sûr que vous utilisez des requêtes HTTPS et HTTPS traitées par le même hôte virtuel ou dirigées vers le même répertoire? – Gumbo

Répondre

0

Utilisez cette règle:

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

Cela n'a pas fonctionné ... Il ne semble pas détecter SSL – mwalsher

0
RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] 
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301] 

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

cela n'a pas fonctionné non plus ... même raison que ci-dessus: ( – mwalsher

1

Il semble que cela ne peut pas être fait dans notre cas .... apparemment parce que le certificat doit d'abord être accepté par le navigateur . Dans le cas où il n'est pas accepté, la redirection ne sera pas autorisée à cause du message "warning" du navigateur.

http://www.webhostingtalk.com/showthread.php?t=885150

+0

HTTP est HTTP sur SSL. Donc la connexion SSL doit être établie avant le La requête HTTP peut être envoyée. Donc, oui, le certificat doit être accepté avant qu'une redirection HTTP ne puisse se produire – Gumbo

+0

"Nous n'utilisons pas de certificat SSL accepté" aurait été une information pertinente Cela change beaucoup la question – ceejayoz

+0

Le but de la question était d'atténuer le problème de ne pas avoir un certificat pour domain.com et seulement pour www.domain.com - mais nous avons maintenant compris que cela ne fonctionnera pas comme mentionné ci-dessus. – mwalsher

0

J'ai eu le même cas, mon certificat était pour domain.com et non www.domain.com. Ce qui se passe, c'est que si l'utilisateur tape https://www.domain.com il ira à la page d'erreur SSL de notre serveur si l'utilisateur insiste pour continuer à la page. ce que je faisais était ajouter cette balise à cette section de tête page d'erreur HTML (erreur emplacement de la page varie en fonction du serveur):

<meta http-equiv="refresh" content="0; url=http://domain.com/" /> 

Il rediriger l'utilisateur vers domain.com. Il n'est pas conseillé de le faire, mais si vous ne pouvez pas vous permettre un certificat générique pour l'instant, c'est une solution de contournement rapide.

Questions connexes