パターンに一致するすべての URL を転送したい:
http://localhost:8080/docs/view.php?fDocumentId=([0-9]+)
に:
http://localhost:8080/alfresco/service/org/docs/redirect/document/properties/$1
これは tomcat 上にあり、「docs」と「alfresco」という 2 つの主要な Web アプリケーションがロードされています。
簡単にするために、古いレガシー アプリケーション (LAMP ベース) には、新しいアプリケーションと同じように、パスの最初の部分として /docs を含むすべての URL がありました。/alfresco に転送する理由は、古い URL を新しい URL に解析し、/docs へのリダイレクトをさらに実行するために開発した Web スクリプトのためですが、これはこの質問には関係ありません。
新しいシステムにはすでにURLRewriteFilterがロードされていますが、webapps/docs/WEB-INF/web.xml に配置する必要がある Google コード サイト (私が追加したもの) に記載されている次の特定のコードが欠けていました。
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
次に、web.xml と同じディレクトリにある urlrewrite.xml に次のルールを追加しました。
<rule>
<from>^/docs/view.php?fDocumentId=([0-9]+)</from>
<to>/alfresco/service/org/docs/redirect/document/properties/$1</to>
</rule>
次のようなものに行こうとすると、404 が表示されますhttp://localhost:8080/docs/view.php?fDocumentId=12345