weblogic & OHS:如何将一个 url 转发到另一台服务器
weblogic & OHS: How forward one url to a different server
我有一个包含 Oracle WebLogic 和 OHS 的环境 运行。
在 mod_wl_ohs.conf 我有以下内容(除了其他应用程序的配置)
<Location /application1>
SetHandler weblogic-handler
WLLogFile /opt/logs/ application1.log
Debug OFF
WebLogicHost 127.0.0.1
WebLogicPort 23666
</Location>
这工作正常并且服务器监听 23666 与实际的 application1 应用程序正在处理像“http://example.com/application1/*”这样的请求。
现在我想将特定 URL 模式的所有请求重定向到不同的域(不需要在同一服务器上),但继续处理其他人的所有请求。
重定向:http://example.com/application1/MagicKeyword/*
继续:http://example.com/application1/NotTheKeyword*
或 http://example.com/application1/AlsoNotKeyword/*
正确的方法是什么?
我尝试了一些 mod_rewrite 规则,它们似乎不会影响或破坏所有内容(在 httpd.conf 中)。我也在读到我们不应该在位置标签内使用 mod_rewrite 规则(现在找不到参考)。
我还可以做些什么?
编辑:最后我发现了我的错误(不知何故错误的语法并没有阻止服务器启动(像往常一样)。
所以我可以:
在 httpd.conf
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule "(.*)/application1/MagicKeyword/(.*)$" "https://www.example.org" [NC,L,R=301]
</IfModule>
或在 Location 标签中添加:
RewriteEngine On
RewriteRule "(.*)/MagicKeyword/(.*)$" "https://www.example.org" [NC,L,R=301]
为什么我应该更喜欢一个而不是另一个?
有什么需要注意的吗?
您可以考虑另外两个选项。您可以使用位置标签的顺序:
<Location /application1/MagicKeyword>
WebLogicHost otherhost
</Location>
<Location /application1>
WebLogicHost 127.0.0.1
</Location>
您可以告诉 WebLogic 排除路径(参见 https://docs.oracle.com/middleware/1212/webtier/PLGWL/plugin_params.htm#PLGWL473):
<Location /application1>
WebLogicHost 127.0.0.1
WLExcludePathOrMimeType /application1/MagicKeyword
</Location>
<Location /application1>
WebLogicHost otherhost
</Location>
我有一个包含 Oracle WebLogic 和 OHS 的环境 运行。
在 mod_wl_ohs.conf 我有以下内容(除了其他应用程序的配置)
<Location /application1>
SetHandler weblogic-handler
WLLogFile /opt/logs/ application1.log
Debug OFF
WebLogicHost 127.0.0.1
WebLogicPort 23666
</Location>
这工作正常并且服务器监听 23666 与实际的 application1 应用程序正在处理像“http://example.com/application1/*”这样的请求。
现在我想将特定 URL 模式的所有请求重定向到不同的域(不需要在同一服务器上),但继续处理其他人的所有请求。
重定向:http://example.com/application1/MagicKeyword/*
继续:http://example.com/application1/NotTheKeyword*
或 http://example.com/application1/AlsoNotKeyword/*
正确的方法是什么?
我尝试了一些 mod_rewrite 规则,它们似乎不会影响或破坏所有内容(在 httpd.conf 中)。我也在读到我们不应该在位置标签内使用 mod_rewrite 规则(现在找不到参考)。
我还可以做些什么?
编辑:最后我发现了我的错误(不知何故错误的语法并没有阻止服务器启动(像往常一样)。
所以我可以: 在 httpd.conf
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule "(.*)/application1/MagicKeyword/(.*)$" "https://www.example.org" [NC,L,R=301]
</IfModule>
或在 Location 标签中添加:
RewriteEngine On
RewriteRule "(.*)/MagicKeyword/(.*)$" "https://www.example.org" [NC,L,R=301]
为什么我应该更喜欢一个而不是另一个? 有什么需要注意的吗?
您可以考虑另外两个选项。您可以使用位置标签的顺序:
<Location /application1/MagicKeyword>
WebLogicHost otherhost
</Location>
<Location /application1>
WebLogicHost 127.0.0.1
</Location>
您可以告诉 WebLogic 排除路径(参见 https://docs.oracle.com/middleware/1212/webtier/PLGWL/plugin_params.htm#PLGWL473):
<Location /application1>
WebLogicHost 127.0.0.1
WLExcludePathOrMimeType /application1/MagicKeyword
</Location>
<Location /application1>
WebLogicHost otherhost
</Location>