我试图弄清楚如何使用 Application_BeginRequest 为网站上的图像启用短 URL。
目前,要打开图像,我必须使用完整的 URL,如下所示:
http://mywebsite.com/ViewImage.aspx?album=123&id=456
我希望可以使用短 URL 访问图像:
http://mywebsite.com/123/456
ViewImage.aspx 从数据库中动态检索图像。
假设我应该使用 RewritePath 方法。但具体如何?
我试图弄清楚如何使用 Application_BeginRequest 为网站上的图像启用短 URL。
目前,要打开图像,我必须使用完整的 URL,如下所示:
http://mywebsite.com/ViewImage.aspx?album=123&id=456
我希望可以使用短 URL 访问图像:
http://mywebsite.com/123/456
ViewImage.aspx 从数据库中动态检索图像。
假设我应该使用 RewritePath 方法。但具体如何?
@Ivo 的答案可能是最简单的,但我个人更喜欢避免安装额外的模块。
如果您使用的是 IIS7(Windows 7/Server 2008 或更高版本),您可以使用请求处理程序(.ashx文件),然后将各种 Url 映射到它们...
有关设置的教程,请参见http://www.dotnetperls.com/ashx 。
完成一项工作后,您可以检查该Request对象以确定确切使用的 Url 并以您喜欢的任何方式提取参数
您可以通过 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>