1

我有一个运行 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>

这可以正常工作,并且使用实际 application1 应用程序侦听 23666 的服务器正在处理诸如“<a href="http://example.com/application1/" rel="nofollow noreferrer">http://example 之类的请求。 com/application1/*”。

现在我想将针对特定 URL 模式的所有请求重定向到不同的域(不需要在同一台服务器上),但继续处理其他所有请求。
重定向:http://example.com/application1/MagicKeyword/*
继续:http://example.com/application1/NotTheKeyword*http://example.com/application1/AlsoNotKeyword/*

什么是正确的方法?
我玩弄了一些 mod_rewrite 规则,似乎它们不会影响或破坏一切(在 httpd.conf 中)。我还读到我们不应该在 location 标记内使用 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]

为什么我应该更喜欢一个而不是另一个?有什么需要担心的吗?

4

1 回答 1

2

您可以考虑另外两个选择。您可以使用位置标签的顺序:

<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> 
于 2018-05-16T12:56:27.043 回答