2011-03-23 56 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

相關問題