Как использовать mod_rewrite с Apache -> mod_jk -> настройка tomcat?

Относятся к некоторым из моих предыдущих вопросов.

Теперь у меня есть установка, которая мне очень нравится:

Apache httpd прослушивает порт 80, принимая соединения http и https. Несколько экземпляров Tomcat, работающих на нескольких портах AJP.

Mod_Jk отправляет разные URL-запросы разным экземплярам Tomcat;

www.mydomain.com/demo -> tomcat:8101
www.mydomain.com/test -> tomcat:8102
www.mydomain.com/     -> tomcat:8100

Это достигается с помощью следующей конфигурации в httpd.conf (или включенных подфайлах);

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>

И все это работает отлично. У меня также есть установка и работа SSL для https-соединений с использованием аналогичного тега VirtualHost;

<VirtualHost _default_:443>
    JkMount /demo* demoTomcat 
    JkMount /test* testTomcat
    JkMount /* rootTomcat
... SSL Stuff follows ....

У меня теперь проблема с тем, что мой сертификат SSL предназначен только для www.mydomain.com, а НЕ mydomain.com.

I ' Мне посоветовали использовать следующие вызовы 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]

Я разместил их до и после правил mod_jk в файле httpd.conf. Сначала Apache жаловался, что RewriteEngine является недопустимой командой, но это исчезло, когда я сначала вспомнил команду LoadModule :) Теперь Apache перезапускается нормально, сервер запускается и принимает запросы, и все работает так, как раньше ... но это все, эти команды mod_rewrite, похоже, не действуют?

Я набираю http://mydomain.com в браузер, и я просто получаю свой сайт как обычно. URL-адрес не меняется на http://www.mydomain.com , и когда я начинаю получать доступ к защищенным областям, я получаю предупреждения о том, что mydomain.com НЕ защищен и является вручил мне сертификат с другого веб-сайта под названием www.mydomain.com (почему это вообще проблема, и он не может просто использовать какую-то логику, чтобы реализовать тот же сайт, я не знаю! ).

Могу ли я разместить правила mod_rewrite не в том месте? Я читал, что это должно работать, перезаписи должны изменить URL-адрес на www. а затем перейти к материалу mod_jk для чего-нибудь еще?

7
задан Nick Foote 23 March 2011 в 10:45
поделиться