- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在试用 Tuckey 的 URLRewriter。
我声明了一个简单的规则,如下:
<rule>
<from>/user/([0-9]+)$</from>
<to>/user.do?id=$1</to>
</rule>
我希望像 myapp.com/user/29
这样的请求映射到“myapp.com/user.do?id=29”。这工作正常,请求到达支持。然而,当在 GUI 上查看响应时,Firebug 是这样提示的:
如您所见,在 /roqket
之间和 /resources
现在有一个/user。我不知道那是怎么结束的。如果我删除 <rule>
它会回到正常的工作资源请求。
你能帮帮我吗?我错过了什么?谢谢!
最佳答案
js、style、img需要定义其他过滤器
像这样:
<rule>
<from>/img/**</from>
<to>/img/$1</to>
</rule>
<rule>
<from>/js/**</from>
<to>/js/$1</to>
</rule>
<rule>
<from>/style/**</from>
<to>/style/$1</to>
</rule>
这些过滤器应该在您为用户定义的过滤器之前声明。这些规则将在适用于过滤器的规则之前匹配,您的问题应该得到解决。
编辑。
关于您的评论:可以在打印屏幕中看到的用户是由过滤器以某种方式添加的。
我认为那是不正确的,我的意思是,过滤器不是将“用户”添加到过滤器的过滤器。我认为问题在于您如何导入资源。
可能,你正在做这样的事情:
<script type="text/javascript" language="javascript" src="resources/js/lang.js"></script>
在这个例子中,看看相对 URI 如何不满足您的应用程序上下文并且没有以斜杠开头。当您使用这样的 URL 时,浏览器将在相对于实际路径的路径中查找资源。如果您的浏览器中有 http://localhost:8080/roqlet/user
,结果将是 http://localhost:8080/roqket/user/theResource
(假设'roqket' 是您的应用上下文)。
所以,你应该这样做:
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<script type="text/javascript" language="javascript" src="${ctx}/resources/js/lang.js"></script>
现在,您指定了上下文,URI 将相对于它而不是实际构建:http://localhost:8080/roqket/theResource
看看这个doc .
关于java - Tuckey Urlrewriter 更改 JS 和 CSS 资源的 url 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13252577/
我一直在尝试在 tuckey 出站规则中使用可选的捕获组,但它不起作用。对此的任何帮助将不胜感激。 我们可以使用格式(.+)吗?作为 tuckey 中的可选捕获组。当我在 apache 中尝试时它工作
我正在尝试将所有 http 请求重定向到 https,除了“health.html”,我需要通过端口 80 上的标准 http 提供服务;出于某种原因,下面的规则似乎并没有这样做——我确定这是一个语法
我正在使用 Tuckey URLRewrite我需要一个接受除“/”或“\”以外的所有内容的规则 我已经写了一条规则,但是 tucker 显示无休止的异常并且没有加载页面 ^
我在 tuckey URL 出站规则方面遇到了问题。我能够设置入站规则,但我需要使用出站规则转换 URL。我们在 Spring 中使用 tuckey。 出站规则: ^/domain.mvc?
我有一个简单的 tuckey 规则将一条路径转发到另一条路径,它看起来像: foo some condition based on device ^/abc/(.*)$ /xyz/$
如何使用 tuckey UrlRewrite 将 url 中的每个字母小写?这就是我现在所拥有的,但似乎不起作用。 (.*) ${lower:$1} 最佳答案 您应该设置一个检查大写字母的条件。试
我的问题是,我的 urewrite.xml 文件中的相似规则存在问题,事实上第一条规则有效,但后面的相似规则无效。这是一个例子: Porsche-911_991-3.4_Carrera.jsp ca
我正在使用urlrewritefilter美化我的产品链接以获得更好的谷歌索引(删除产品参数)。 示例: .../product/snowboarda 通过url重写规则传输到 .../product
我使用的是将 use-query-string 设置为默认值 (false) 的 Tuckey urlrewrite 过滤器。这意味着来自 url 不使用查询参数来匹配。在孤立的情况下,我想做的是重命
我想永久重定向 /?industry_id=3 to /industry/3/athletics 我尝试了规则: /?industry_id=3$ /industry/3/athl
我在 Glassfish 上的 JSF 中使用 tuckey urlrewrite 过滤器来清理 url。以下是过滤器的规则(不起作用): ^/user/(.*)$
我正在使用 Jersey 框架,我的端点是 /v1/users/{user_id:\p{XDigit}{8}}/orders/{order_id:\p{XDigit}{8}}. 我需要的是重写url
我有以下规则: ^/users/(.*)$ /users.do$1 我想匹配以下网址: http://localhost:8077/users/?elemsPerPage=10
我正在将 tomcat 与 tukey 一起用于 URLRewrite。我的 urlrewrite.xml 中几乎没有规则。我怎样才能确保如果其中一条规则匹配;它停止处理进一步的规则! 最佳答案 找到
我有一个安装了 Tuckey 的 Tomcat 服务器作为代理,用于将请求转发到具有嵌入式 Jetty 服务器的应用程序。带有嵌入式 Jetty 的应用程序公开了一个 REST url 但不提供授权。
我正在使用 tuckey url 重写过滤器,我想将语言扩展名 (.cfm) 添加到干净的 url。 (我知道我假设路径中的最后一个词始终是脚本。) 比如我想把.cfm加到 /someScript /
我正在尝试将 URL 重写映射存储在单独的文件中。 我找到了一些关于使用 .Net 或 Apache 的答案,但没有找到如何在 Tomcat 中使用 Tuckey 来做到这一点的方法。 有谁知道 Tu
我一直在研究如何在 Tomcat 8 上执行 URL 重写,并不断遇到相同的两个建议。 1) 使用 Tuckey URLRewriteFilter。2) 在 Tomcat 之上运行 Apache 以使
我正在尝试使用 Tuckey urlRewriteFilter 将任何 URL 重写为 https://,同时保留附加到 URL 的任何查询字符串参数。我的 urlrewrite.xml 文件目前看起
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我是一名优秀的程序员,十分优秀!