gpt4 book ai didi

java - 如何在 Tomcat 7 上使用 UrlRewriteFilter 缩短/清理 URL

转载 作者:行者123 更新时间:2023-11-28 22:57:45 25 4
gpt4 key购买 nike

我是 Tomcat URL 缩短的新手。我已经为我的 Web 应用程序安装了 UrlRewriterFilter,但不太了解如何实现新规则。

我在博客索引页上有一个链接,链接到一篇单独的博客文章。

例如:read-post.jsp?id=1&title=Some-blog-post-title

我希望将 URL 更改为 read-post/some-blog-post-title

这是我尝试过但行不通的方法:

<rule>
<from>^read-post/([0-9a-zA-Z]+)</from>
<to>read-post.jsp?id=$1&amp;title=$1</to>
</rule>

鉴于 URL 是动态生成的,但遵循相同的模式,我如何在 UrlreWriterFilter 中实现这一点?

最佳答案

您的规则定义有误,它应该以 / 开头,如下所示。

<urlrewrite>
<rule>
<from>^/read-post/([0-9a-zA-Z]+)</from>
<to>/read-post.jsp?id=$1&amp;title=$1</to>
</rule>
</urlrewrite>

UrlRewriterFilter 在您的上下文之后开始处理,因此在开头使用 / 意味着在您的上下文之后。

当您使用此规则时,任何对 read-post.jsp?id=1&title=Some-blog-post-title 的请求都将被转发到 read-post.jspid=Some-blog-post-titletitle=Some-blog-post-titleid 在这里没用,如果您的 read-post.jsp 页面可以找到只有标题的帖子,但如果 read-post.jsp 需要 id 才能找到发布,那么你应该像下面一样在 url 中包含 id

  <urlrewrite>
<rule>
<from>^/read-post/([0-9]+)/([0-9a-zA-Z]+)</from>
<to>/read-post.jsp?id=$1&amp;title=$2</to>
</rule>
</urlrewrite>

因此,您可以使用这种格式的 URL read-post/1/Some-Blog-Title url 中会有一个 id

关于java - 如何在 Tomcat 7 上使用 UrlRewriteFilter 缩短/清理 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23844561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com