gpt4 book ai didi

apache - 如何在 Apache -> mod_jk -> tomcat 设置中使用 mod_rewrite?

转载 作者:行者123 更新时间:2023-11-28 21:46:44 26 4
gpt4 key购买 nike

与我之前的一些问题有关。

我现在有一个我非常喜欢的设置;

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

Mod_Jk 正在向不同的 tomcat 实例发送不同的 url 请求;

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 标记为 https 连接设置和运行 SSL;

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

我现在遇到的问题是我的 SSL 证书仅适用于 www.mydomain.com 而不是 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,然后我就正常访问了我的网站。 url 似乎没有更改为 http://www.mydomain.com,当我开始访问安全区域时,我收到警告说 mydomain.com 不安全并且正在为我提供来自其他一些名为 www.mydomain.com 的网站的证书(为什么这是一个问题,它不能只使用一些逻辑来实现它的同一个站点,我不知道我不知道!)。

我是否将 mod_rewrite 规则放在了错误的位置?我读过它应该工作,重写应该将 url 更改为 www。然后传递给 mod_jk 的东西以获得进一步的东西?

最佳答案

在您的 Apache 配置中将此代码段紧跟在最后 jkmount 行之后:

    <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 主机是 NOT www.mydaomain.com THEN 使用 301 http 状态将请求 https://example.com/foo 重定向到 https://www.example.com/foo

关于apache - 如何在 Apache -> mod_jk -> tomcat 设置中使用 mod_rewrite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5404024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com