Iis 7 IIS中的URL重写

Iis 7 IIS中的URL重写,iis-7,url-rewriting,Iis 7,Url Rewriting,每当有人提出要求时 http://localhost:9000/Content/PDF/ABC.pdf 在IIS中,我希望URL重写模块处理该请求并将其重定向到 http://localhost:9000/User/GetPdf 因此,在向最终用户显示pdf文件之前,将调用我的控制器和操作方法,并执行我的代码 这里的用户是UserController,GetPdf是我的应用程序中的一个ActionMethod 谁能告诉我重写URL的步骤吗 提前感谢。我假设您使用的是IIS 7.x,并且您已

每当有人提出要求时

http://localhost:9000/Content/PDF/ABC.pdf 
在IIS中,我希望URL重写模块处理该请求并将其重定向到

http://localhost:9000/User/GetPdf
因此,在向最终用户显示pdf文件之前,将调用我的控制器和操作方法,并执行我的代码

这里的用户是UserController,GetPdf是我的应用程序中的一个ActionMethod

谁能告诉我重写URL的步骤吗


提前感谢。

我假设您使用的是IIS 7.x,并且您已经安装了

在应用程序的web.config文件中,添加类似以下内容的
元素:

<system.webServer>
   <rewrite>
      <rules>
        <rule name="PDF Rewrite">
          <match url="Content/PDF/([\w-]+)\.pdf" />
          <action type="Rewrite" url="User/GetPdf/{R:1}" logRewrittenUrl="true" />
        </rule>
      </rules>
    </rewrite>
</system.webServer>
变成:

http://localhost:9000/User/GetPDF/ABC 
我假设您需要将PDF的名称传递给操作方法,因此如果您实现标准路由模式
{Controller}/{Action}/{id}
,那么
id
将设置为“ABC

我找到的URL重写模块的最佳介绍实际上是。尽管它是针对v.1.1而不是2.0的,但它提供了比。从一开始就值得一读。特别是,您必须理解“从重写规则访问URL部分”部分

要调试URL重写模块,可以使用IIS 7.x“失败的请求跟踪”,它与名称相反,可用于跟踪成功和失败的请求。这说明了如何配置此配置以及可用的详细调试信息量


还请注意,
logrewritenurl=“true”
属性意味着重写的URL将记录到标准IIS日志中,而不是原始URL。(它不能用于记录原始和重写的URL,您只能获取其中一个。)

我假设您使用的是IIS 7.x,并且已安装

在应用程序的web.config文件中,添加类似以下内容的
元素:

<system.webServer>
   <rewrite>
      <rules>
        <rule name="PDF Rewrite">
          <match url="Content/PDF/([\w-]+)\.pdf" />
          <action type="Rewrite" url="User/GetPdf/{R:1}" logRewrittenUrl="true" />
        </rule>
      </rules>
    </rewrite>
</system.webServer>
变成:

http://localhost:9000/User/GetPDF/ABC 
我假设您需要将PDF的名称传递给操作方法,因此如果您实现标准路由模式
{Controller}/{Action}/{id}
,那么
id
将设置为“ABC

我找到的URL重写模块的最佳介绍实际上是。尽管它是针对v.1.1而不是2.0的,但它提供了比。从一开始就值得一读。特别是,您必须理解“从重写规则访问URL部分”部分

要调试URL重写模块,可以使用IIS 7.x“失败的请求跟踪”,它与名称相反,可用于跟踪成功和失败的请求。这说明了如何配置此配置以及可用的详细调试信息量


还请注意,
logrewritenurl=“true”
属性意味着重写的URL将记录到标准IIS日志中,而不是原始URL。(它不能同时记录原始URL和重写的URL,只能记录其中一个。)

作为旁注,我发现ISAPI_Rewrite非常有用。它将允许您在ISS中使用.htaccess文件,而无需对其进行任何更改。更多信息请访问感谢龙。但我没有权限将新插件添加到我的生产服务器IIS中。我的生产服务器IIS已安装URL重写模块。我需要使用它本身。你能提供进一步的帮助吗?很抱歉,我不知道如何在IIS中使用URL重写模块。顺便说一下,我发现ISAPI_重写非常有用。它将允许您在ISS中使用.htaccess文件,而无需对其进行任何更改。更多信息请访问感谢龙。但我没有权限将新插件添加到我的生产服务器IIS中。我的生产服务器IIS已安装URL重写模块。我需要使用它本身。你能进一步帮助吗?对不起,我不知道如何在IIS中使用URL重写模块。