2009-02-20 6 views
5

J'ai un certificat SSL pour le sous-domaine 'www' d'un site web que nous appellerons example.com.Forçage du sous-domaine SSL et www pour tout URI entré avec .htaccess?

Par conséquent, je peux forcer SSL, mais si l'utilisateur n'entre pas 'www.example.com' dans son navigateur, le certificat SSL semble invalide.

Je souhaite accomplir ceci avec des règles de mod_rewrite dans un dossier de .htaccess à la racine du site Web.

Peu importe ce que l'utilisateur URI entre, (par exemple example.com, www.example.com, https://example.com, example.com/folder/file.html, etc.), je veux forcer le HTTPS et la www sous-domaine, en conservant tout URI qu'ils ont fourni, bien sûr. Je jouais avec le fichier .htaccess et quelques règles, comme j'ai déjà fait quelques recherches, mais je n'ai pas beaucoup d'expérience avec mod_rewrite ou .htaccess. Je pense que j'ai trouvé la révision SVN que presque a fonctionné pour moi, mais pas tout à fait. Le voici:

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
RewriteCond %{HTTP_HOST} ^example.com [nc] 
RewriteRule ^(.*)$ https://www.example.com/$1 [r=301,nc] 

Essayez de ne pas trop rigoler à mon dossier; Il est principalement dérivé d'exemples que j'ai trouvés en ligne.

Tous les pointeurs sont appréciés! =)

+0

http://no-www.com/ – ceejayoz

+0

également: utiliser example.com pour les domaines par exemple (fixe pour vous) –

Répondre

3

Essayez ceci:

RewriteCond %{HTTPS} !on [OR] 
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] 
RewriteRule^https://www.example.com%{REQUEST_URI} [R=301] 
+0

Modified de votre original (qui avait% {HTTP_HOST} dans la ligne RewriteRule, que je vois que vous avez déjà corrigé) cela fonctionne très bien: RewriteRule^https: //www.example.com% {REQUEST_URI} [R = 301] – Alex

Questions connexes