3

我试图弄清楚如何使用 Application_BeginRequest 为网站上的图像启用短 URL。

目前,要打开图像,我必须使用完整的 URL,如下所示:

http://mywebsite.com/ViewImage.aspx?album=123&id=456

我希望可以使用短 URL 访问图像:

http://mywebsite.com/123/456

ViewImage.aspx 从数据库中动态检索图像。

假设我应该使用 RewritePath 方法。但具体如何?

4

2 回答 2

1

@Ivo 的答案可能是最简单的,但我个人更喜欢避免安装额外的模块。

如果您使用的是 IIS7(Windows 7/Server 2008 或更高版本),您可以使用请求处理程序(.ashx文件),然后将各种 Url 映射到它们...

有关设置的教程,请参见http://www.dotnetperls.com/ashx 。

完成一项工作后,您可以检查该Request对象以确定确切使用的 Url 并以您喜欢的任何方式提取参数

于 2012-10-18T14:46:42.727 回答
1

您可以通过 URL 重写来完成此操作http://www.iis.net/downloads/microsoft/url-rewrite您在 web.config 中创建规则以将 url 映射到文件。

例如,我们使用此图像规则将版本 url 映射到真实图像。您可以为您的网址创建一些类似的东西。在 IIS 中,您可以在安装模块时测试您的规则

    <rule name="rewriteImgRule" stopProcessing="true">
      <match url="^v[0-9\.]+/img/(.*)$" />
      <action type="Rewrite" url="/img/{R:1}" />
    </rule>
于 2012-10-18T14:19:47.370 回答