1

アプリケーションで Intelligencia の UrlRewriter を使用していますが、設定したルールが URL から + 記号を削除しているように見えるという問題があります。

たとえば、URLを取得したいのですが、次の/category/catname/+tag+tagように表示されます/category/catname/ tag tag

誰にもアイデアはありますか?これは私の正規表現にかかっていますか? レギュレーターで試してみましたが、うまく一致します。

<rewriter>
  <rewrite url="^/content/(.+)$" to="~/page.aspx?name=$1" />
  <rewrite url="^/category/(.+)$" to="~/catalog.aspx?category=$1" />
  <rewrite url="^/product/(.+)$" to="~/catalog.aspx?product=$1" />
  <rewrite url="~/login/" to="~/login.aspx"/>
</rewriter>
4

1 に答える 1

5

これを行う理由は、リライターが実際に取得する前に、「+」が Web サーバーによってスペースとして解析されるためです。リテラル + は、実際の URL では使用できないものです。+ を使用する場合は、%2B: "/category/catname/%2Btag1%2Btag2" のように参照する必要があります。

編集: これは URL エンコードの例です。これは、使用できない文字のいくつかと、それらをエンコードする方法を示しています。URL に視覚的に魅力的な文字を探している場合は、どちらも有効な「-」と「_」を試すことができます。「-」をお勧めします。URL の例は「/category/catname/-tag1-tag2」です。

于 2008-10-20T14:08:28.437 に答える