簡體   English   中英

如何在Tomcat 7上使用UrlRewriterFilter縮短/清除URL

[英]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&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.jsp都將轉發到read-post.jsp其中id=Some-blog-post-titletitle=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&amp;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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM