2009-02-20 15 views
5

Tengo un certificado SSL para el subdominio 'www' de un sitio web que llamaremos example.com.Forzando el subdominio de SSL y www para cualquier URI ingresado con .htaccess?

Por lo tanto, puedo forzar SSL, pero si el usuario no ingresa 'www.example.com' en su navegador, el certificado SSL no es válido.

Deseo cumplir esto con las reglas de mod_rewrite en un archivo .htaccess en la raíz del sitio web.

No importa lo que el usuario entra en URI, (por ejemplo, example.com, www.example.com, https://example.com, example.com/folder/file.html, etc.), quiero forzar el HTTPS y la www subdomain, manteniendo el URI que proporcionaron, por supuesto.

Estaba jugando con el archivo .htaccess y algunas reglas, como ya he hecho algunas investigaciones, pero no tengo mucha experiencia con mod_rewrite o .htaccess. Creo que encontré la revisión SVN que casi funcionó para mí, pero no del todo. Aquí está:

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] 

Trate de no reírse demasiado en mi archivo; se deriva principalmente de ejemplos que encontré en línea.

¡Todos los indicadores son apreciados! =)

+0

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

+0

también: example.com utilizar por ejemplo los dominios (fijo por ti) –

Respuesta

3

Prueba esto:

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

modificado a partir de su original (que tenía% {HTTP_HOST} en la línea RewriteRule, que veo que ya has arreglado) funciona muy bien: RewriteRule^https: //www.example.com% {REQUEST_URI} [R = 301] – Alex

Cuestiones relacionadas