2011-09-12 83 views
0

tomcat rewrite.xmlファイルを使用してjavaアプリケーションのurlルールを定義済みです。tomcatのURL書き換え

<rule> 
    <condition name="host" operator="equal">example-laboratories.pt</condition> 
    <from>[^pt]/(.*)$</from> 
    <to type="redirect">http://example-laboratories.pt/pt/$1</to> 
</rule> 

我々はURLにhttp://example-laboratories.pt URLを要求するとき、これは動作しますが、私は、ユーザーがhttp://example-laboratories.pt/ptを要求した場合http://example-laboratories.pt/ptにリダイレクトする必要があります。今度は上記のルールはhttp://example-laboratories.pt/pt/ptにリダイレクトされます(末尾に「pt」が追加されています)。

+1

:(?あなたはTuckeyを使用しているように見えます)

をあなたはたとえば、この使用OCPsoft書き換え(http://ocpsoft.com/rewrite/

を行うことができます解決策を示唆していませんが、確かに正規表現の問題です。 (その 'から'あなたが期待して一致していない...) –

答えて

0

私はあなたが何をしたいのかを正確にわからないんだけど、あなたは正規表現でエラーが発生しているように見えます:

<from>[^pt]/(.*)$</from> 

これは実際には「『P』または 『T』以外の任意の文字を言いますその後はスラッシュ、その後は0以上のものがあります。

私はそれがあなたが望むものだとは思っていませんが、あなたがしたいことのようには見えません。別のURL書き換えツールを使用すると、ほとんどの場合正規表現を回避できます。私はあなたがそう私ができる望んで書き換える理解_quite_なかった

ConfigurationBuilder.begin() 
.defineRule() 
.when(Domain.matches("example-laboratories.pt") 
    .and(Path.matches("/{1}/{2}") 
     .where("1").matches("(?!pt)[^/]+") 
     .where("2").matches(".*"))) 
.perform(Redirect.permanent(context.getContextPath() + "/pt/{2}"))