2009-02-20 4 views
5

Ich habe ein SSL-Zertifikat für die 'www' Subdomain einer Website, die wir bei example.com aufrufen werden.Erzwingen SSL und www Subdomain für jeden URI eingegeben mit. Htaccess?

Daher kann ich SSL erzwingen, aber wenn der Benutzer "www.example.com" nicht in seinen Browser eingibt, scheint das SSL-Zertifikat ungültig zu sein.

Ich möchte dies mit mod_rewrite Regeln in einer. Htaccess-Datei im Stamm der Website erreichen.

Egal, was URI gibt den Benutzer (zB example.com, www.example.com, https://example.com, example.com/folder/file.html, etc.), ich und das HTTPS erzwingen will die www-Subdomain, natürlich, was auch immer URI ihnen zur Verfügung stellte.

Ich spielte mit der .htaccess-Datei und einigen Regeln herum, da ich bereits etwas recherchiert habe, aber ich habe nicht viel Erfahrung mit mod_rewrite oder .htaccess. Ich denke, ich fand die SVN-Revision, dass fast für mich arbeitete, aber nicht ganz. Hier ist es:

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] 

Versuchen Sie nicht, zu meiner Akte zu lachen; Es ist hauptsächlich von Beispielen abgeleitet, die ich online gefunden habe.

Alle Zeiger sind willkommen! =)

+0

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

+0

auch: example.com verwenden zum Beispiel Domänen (regelte es für Sie) –

Antwort

3

Versuchen Sie folgendes:

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

von Ihrem ursprünglichen Modified (die hatte% {HTTP_HOST} in der RewriteRule-Zeile, die, wie ich gesehen habe, bereits korrigiert wurde), funktioniert es großartig: RewriteRule^https: //www.example.com% {REQUEST_URI} [R = 301] – Alex