- 论坛徽章:
- 0
|
有一个需求,原本单服务器A的应用,现在有一些链接需要转发至B的应用上面,我用RewriteRule和RedirectMatch进行试验
应用监听的都是8081的监听,然后分别转发,符合规则的转发至目标服务器的指定URL上面,不符合规则的转发至本地的tomcat上面
RewriteRule 的主要转发代码如下,这样配置完全没问题,可以正常跳转
- Listen 8081
- <Virtualhost *:8081>
- RewriteEngine On
- RewriteRule /browse/OSSSUP($|/|-.*) https://esjirv15.emea.nsn-net.net/browse/OSSSUP$1 [R=301,L]
- RewriteRule /browse/NESUP($|/|-.*) https://esjirv15.emea.nsn-net.net/browse/NESUP$1 [R=301,L]
- RewriteRule /browse/SRNSUP($|/|-.*) https://esjirv15.emea.nsn-net.net/browse/SRNSUP$1 [R=301,L]
- RewriteRule /browse/RDNC($|/|-.*) https://esjirv15.emea.nsn-net.net/browse/RDNC$1 [R=301,L]
- RewriteRule /browse/TREPC($|/|-.*) https://esjirv15.emea.nsn-net.net/browse/TREPC$1 [R=301,L]
- ...
- RewriteLogLevel 1
- RewriteLog logs/jira-rewrite-logs
- ProxyPass /status http://localhost:80/status
- ProxyPass / http://localhost:8080/
- ProxyPassReverse / http://localhost:8080/
- ProxyTimeout 86400
复制代码 以下是有问题的RedirectMatch代码,没有工作的样子,配置本身没有错误,我改成了根目录全转发都不会进行转发
- Listen 8081
- <Virtualhost *:8081>
- RewriteEngine On
- RedirectMatch 301 /(.*) https://esjirv15.emea.nsn-net.net/
- ProxyPass /status http://localhost:80/status
- ProxyPass / http://localhost:8080/
- ProxyPassReverse / http://localhost:8080/
- ProxyTimeout 86400
- ErrorLog logs/jira-all_error_log
- CustomLog logs/jira-all_log common
- </Virtualhost>
复制代码 我原以为是apache对于目录的解析层不一样,但是我看了后台的日志,发现这个规则似乎并没有生效,比如这下面是一条日志,/secure说明路径没有问题- 10.121.122.169 - - [01/Nov/2011:08:11:13 +0200] "GET /secure/BrowseProjects.jspa HTTP/1.1" 200 20123
复制代码 请问各位先行者,这个RedirectMatch除了依赖于alias mod,还有没有其他配置项才能使之生效?还是有特殊的方法,以上的实现的功能都是从手册上扒下来的,目前没有什么思路解决。。。 |
|