JBoss AS 7中的java重写规则
我在《重写》中成功地玩了《重写规则》。财产
现在,我想重写如下url:
https://localhost:8443/test/customer1/login.xhtml
到
https://localhost:8443/test/login.xhtml?customer=customer1
因此,我使用以下重写规则,但它不起作用
RewriteRule ^/(.*)$/login\.xhtml /login.xhtml?customer=$1
不幸的是,它不起作用。找不到该页。有人有主意吗
你知道重写后我如何记录或查看结果url吗
# 1 楼答案
你能把你的信寄出去吗。属性文件
以下是JBoss网站docs for rewrite.properties(供他人参考)
如果你没有找到解决办法,试试UrlRewriteFilter
但仔细看看您的regexp,似乎需要进一步研究这一问题。 我建议不要使用
customer1
but customer/1
——没有斜杠,在一般情况下很难拆分。不管怎样:关于记录,阀门似乎使用以下代码记录:
因此,您可能会通过将整
org.jboss.web
或org.apache.catalina
设置为调试来获得该消息。然后勾选standalone/log/server.log
更新:我以为提问者想把“customer1”解析为“customer=1”。原来他只是想移动路径段
所以,我会尝试:
也就是说,从上下文根到第一个
/
排他# 2 楼答案
您应该能够使用
RewriteLog
指令来查看发生了什么不过,看看你的重写规则,我有一种预感,我知道出了什么问题:
首先,这个规则不匹配,因为在字符串中间的^ {CD2>}应该标记请求字符串的结尾。之后的一切都是无关的。让我们把它拿出来:
如果我将此规则应用于
https://localhost:8443/test/customer1/login.xhtml
,我将被重定向到https://localhost:8443/login.xhtml?customer=test/customer1
,这不是您想要的。我的猜测是,您需要考虑路径的/test/
部分。要获得所需的输出,请尝试以下操作: