2016-08-05 73 views
0

我已经在Websphere应用服务器上部署了我的应用程序,并且我的应用服务器和网络服务器彼此进行了通信。网络服务器httpd.conf文件重写流程不起作用

我已经部署了一个应用程序和/ toms上下文根和其他应用程序与/ tomsmt上下文根。现在我改变了我在httpd.conf中的重写规则来运行这两个应用程序。但是应用程序在/ toms上下文根上运行,但是当我运行由/ tomsmt上下文根部署的应用程序时,则出现错误。

有人可以请帮忙。

我重写规则如下

重写规则^ /(汤姆斯| tomsmt)$(汤姆斯| tomsmt)/backend/index.cfm [R]

现在URL /汤姆斯/后端/指数。 cfm工作但URL/tomsmt/backend/index.cfm不起作用

回答

0

无论你有什么要达到你的后端,你没有指定,并可能影响到这一点。

您需要引用用括号不是想捕捉它的目标URL

由于拍摄到的值:

RewriteRule ^/(toms |tomsmt)$ /$1/backend/index.cfm [R] 

$ 1参照捕获组:(汤姆斯OR tomsmt)和意志使用客户请求的任何值并使用它进行重定向。

还有另外一种方法,使用RedirectMatch:

RedirectMatch ^/(toms |tomsmt)$ /$1/backend/index.cfm 


图片的标题说明:如果有进一步的RewriteRules下来 在你重写规则你不使用标志L,考虑重写不会停止请注意重写循环。

就像在上面的例子中,我更喜欢使用mod_alias Redirect/RedirectMatch来进行简单的外部重定向,他们完成了工作并且对于这种简单的重定向并没有矫枉过正。除非确实需要,否则不要使用mod_rewrite是明智的。