重写规则以重定向URL

时间:2018-09-29 09:49:26

标签: c# url-rewriting web-config

我将URL创建为-http://localhost:13490/level1/XYZ/hulhbgma79
尝试在-http://localhost:13490/level1/PQR/HttpHandler.ashx?Id=hulhbgma79

上重定向此URL

在上面给出的URL示例

  1. 级别1-此名称根据级别2或级别3进行更改。
  2. XYZ-是虚拟模块。
  3. PQR是一个保存HttpHandler.ashx的文件夹。
  4. id是可查询的查询字符串参数。
  5. hulhbgma79是为querystring参数传递的值。

对于这种情况,我已经写了规则-

<rule name="RewriteURL" stopProcessing="true">
        <match url="^XYZ\/((([A-Za-z0-9]+)(\s|&amp;)([^\/]+))|(([^\/]+)(\s|&amp;))|([^\/]+))\/?$" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Redirect" url="{R:1}/PQR/HttpHandler.ashx?Id={R:9}" />

        </rule>

无法正常工作。

有人可以帮助我获得相同的解决方案吗?

1 个答案:

答案 0 :(得分:1)

<rule name="RewriteURL" stopProcessing="true">
        <match url="(level\d)\/XYZ\/((([A-Za-z0-9]+)(\s|&amp;)([^\/]+))|(([^\/]+)(\s|&amp;))|([^\/]+))\/?$" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Redirect" url="{R:1}/PQR/HttpHandler.ashx?Id={R:2}" />

        </rule>