【问题标题】:Url Rewriting for images图像的 URL 重写
【发布时间】:2012-10-09 00:49:11
【问题描述】:

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

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

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

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

http://mywebsite.com/123/456

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

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

【问题讨论】:

    标签: asp.net .net url-rewriting rewritepath


    【解决方案1】:

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

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

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

    一旦你有一个工作,你可以检查 Request 对象以确定确切使用的 Url 并以任何你喜欢的方式提取参数

    【讨论】:

      【解决方案2】:

      您可以通过 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>
      

      【讨论】:

      • 我认为你的规则有点不靠谱 - 路径中没有 /img 并且重写的 url 需要拆分 2 部分。 ViewImage.aspx?album={R:1}&amp;id={R:2} 之类的东西?
      • 该规则是 url 重写如何工作的示例,而不是提供的 url 的解决方案重写(因为我无法测试它)。抱歉应该提到这一点
      • 它不是开箱即用的,对吧?我可以在共享主机上使用它吗?
      猜你喜欢
      • 2013-12-16
      • 2014-04-07
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 2020-11-25
      • 2013-12-25
      • 1970-01-01
      相关资源
      最近更新 更多