2011-03-23 41 views
7

与我之前的一些问题有关。如何在Apache中使用mod_rewrite - > mod_jk - > tomcat安装程序?

我现在有一个设置,我很喜欢;

Apache httpd在端口80上侦听接受http和https连接。 在几个AJP端口上运行的几个Tomcat实例。

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> 

而且这一切都很好。我也使用类似的VirtualHost标签为SSL连接设置并运行https连接;

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

什么我现在有麻烦的是,我的SSL证书只适用于www.mydomain.com和NOT mydomain.com。

我建议使用下面的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] 

我已经在httpd.conf文件中的mod_jk规则之前和之后放置了它们。 Apache首先抱怨说RewriteEngine是一个无效的命令,但是当我首先记住LoadModule命令时,这消失了:)现在,Apache重新启动就好了,服务器启动并接受请求,一切都按照它使用的方式工作......但那就是只是它,这些mod_rewrite命令似乎没有效果?

我输入http://mydomain.com进入浏览器,我只是得到我的网站按正常。该网址似乎并没有改变为http://www.mydomain.com,当我开始访问安全区域时,我收到警告,说明mydomain.com未被安全保护,并且正在为我提供来自其他网站的证书www.mydomain.com(为什么这是一个问题,它可以'只是用一些逻辑来实现它的同一个网站,我不知道!)。

我把mod_rewrite规则放在错误的地方?我读过它应该工作,重写应该改变网址为www。然后通过mod_jk的东西进一步的东西?

回答

2

将这个片段最后jkmount线后,就在你的Apache配置:

<IfModule mod_rewrite.c> 
     RewriteEngine On 
     RewriteCond %{HTTPS} =on 
     RewriteCond %{HTTP_HOST} !^www\.example\.name$ [NC] 
     RewriteRule^https://www.example.name%{REQUEST_URI} [NE,L,R=301] 
    </IfModule> 

什么该规则正在做的是IF方案是HTTPS和你的HTTP主机是www.mydaomain.comTHEN用301 http状态重定向请求https://example.com/foohttps://www.example.com/foo

+0

里面的VirtualHost标签? – 2011-03-23 13:30:20

+0

是在VirtualHost标签内。 – anubhava 2011-03-23 13:56:10

+0

@Nick Foote:这个重写规则对你有用吗? – anubhava 2011-03-23 15:05:36

相关问题