[英]How to shorten/clean a URL using UrlRewriterFilter on Tomcat 7
我是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&title=$1</to>
</rule>
假設URL是動態生成的(盡管遵循相同的模式),如何在UrlreWriterFilter中實現呢?
您的規則定義有誤,應以/
開頭,如下所示。
<urlrewrite>
<rule>
<from>^/read-post/([0-9a-zA-Z]+)</from>
<to>/read-post.jsp?id=$1&title=$1</to>
</rule>
</urlrewrite>
UrlRewriterFilter
在您的上下文之后開始處理,因此在開頭使用/
表示在上下文之后。
使用此規則時,任何對read-post.jsp?id=1&title=Some-blog-post-title
read-post.jsp
都將轉發到read-post.jsp
其中id=Some-blog-post-title
和title=Some-blog-post-title
但是id
在這里沒有用,如果您的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&title=$2</to>
</rule>
</urlrewrite>
因此,您可以使用read-post/1/Some-Blog-Title
格式read-post/1/Some-Blog-Title
中將有一個id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.