私はそのような単純なルールを構築するのに苦労しています。クラス1変数が4000から5999の間にない場合にのみ、URLをクリーンアップしたいと思います。
ユーザーがに行くとき、f?p=3999:1:1:::::
私はユーザーがに向けられることを望みます/3999/1?vars=:1:::::
。ユーザーがf?p=4000:1:1:::::
URLにアクセスした場合、URLはクリーンアップされません。
これが私がこれまでに持っているものです。これは、範囲を除いて、私が望むことを実行します。誰か助けてください!:
<rule match-type="regex">
<note>
FROM= URL typed in by user
TO= URL user is redirected to.
</note>
<from>^/f\?p=([0-9A-Za-z]+):([0-9A-Za-z]+):([0-9A-Za-z]*)(.*)$</from>
<to type="redirect">/$1/$2?vars=$3$4</to>
</rule>
Lindrianが提供するソリューションを使用して、コードに挿入し、目的の結果を得ることができました。
最終的な解決策:
<rule match-type="regex">
<note>
FROM= URL typed in by user
TO= URL user is redirected to.
</note>
<from>^/f\?p=((?:[0-3]|[6-9])[0-9]*|[54]\d{4,}):([0-9A-Za-z]+):([0-9A-Za-z]*)(.*)$</from>
<to type="redirect">/$1/$2?vars=$3$4</to>
ここで行っているのは、URLRewriteFilterを使用してOracleアプリケーションのエクスプレスURLをクリーンアップすることです。ここでの問題は、APEXが相対参照を使用しているため、APEXにログインすると、リンクされたページがリンクされたページとして$ 1 / f?p...を検索することです。$ 1が存在しないため、これはエラーになります。そこで、開発UIのURLクリーニングをオフにしました