relacionado con algunas de mis preguntas anteriores.Cómo usar mod_rewrite con Apache -> mod_jk -> configuración de tomcat?
Ahora tengo una configuración que me gusta bastante;
Apache httpd escuchando en el puerto 80 aceptando conexiones http y https. Varias instancias de Tomcat que se ejecutan en varios puertos AJP.
Mod_Jk está enviando diferentes solicitudes de URL a diferentes instancias de tomcat;
www.mydomain.com/demo -> tomcat:8101
www.mydomain.com/test -> tomcat:8102
www.mydomain.com/ -> tomcat:8100
Esto se logra con la siguiente configuración en httpd.conf (o sub archivos incluidos);
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
NameVirtualHost *:80
<VirtualHost *:80>
JkMount /demo* demoTomcat (workers.properties not shown)
JkMount /test* testTomcat
JkMount /* rootTomcat
</VirtualHost>
Y todo esto funciona muy bien. También tengo la configuración de SSL y la ejecución de conexiones https usando una etiqueta VirtualHost similar;
<VirtualHost _default_:443>
JkMount /demo* demoTomcat
JkMount /test* testTomcat
JkMount /* rootTomcat
... SSL Stuff follows ....
Lo que estoy teniendo problemas ahora es que mi certificado SSL es sólo para www.mydomain.com y NO mydomain.com.
Me han recomendado utilizar las siguientes llamadas a mod_rewrite;
Options +FollowSymlinks
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.|$) [NC]
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [PT,L]
he colocado estos antes de antes y después de las reglas mod_jk en el archivo httpd.conf. Al principio, Apache se quejaba de que RewriteEngine era un comando no válido, pero desapareció cuando recordé el comando LoadModule primero :) Ahora Apache se reinicia muy bien, el servidor inicia y acepta solicitudes y todo funciona de la forma en que lo hace ... pero eso es simplemente, estos comandos mod_rewrite parecen no tener ningún efecto?
Escribo http://mydomain.com
en el navegador y acabo de obtener mi sitio web como de costumbre. La url no parece cambiar a http://www.mydomain.com
y cuando comienzo a acceder a las áreas seguras recibo advertencias de que mydomain.com
NO está seguro y me está sirviendo un certificado de algún otro sitio web llamado www.mydomain.com
(¿por qué esto es un problema y puede hacerlo? ¡Solo uso un poco de lógica para darme cuenta de que es el mismo sitio, no lo sé!).
¿Estoy colocando las reglas de mod_rewrite en el lugar incorrecto? He leído que debería funcionar, las reescrituras deberían cambiar la URL a www. y luego pasar a las cosas mod_jk para nada más?
dentro de las etiquetas VirtualHost? –
sí dentro de las etiquetas de VirtualHost. – anubhava
@Nick Foote: ¿Esa regla de reescritura funciona para usted? – anubhava