【发布时间】:2010-05-07 18:40:44
【问题描述】:
我需要为 web.config 创建规则,它将所有对扩展名为 .html 的文件的请求重写为 .asp 并将所有 .asp 请求重定向到 .html
示例:
file_xyz.asp 重写为 file_xyz.html
directory1/file_xyz.asp 重写为 directory1/file_xyz.html
和
file_xyz.html 重定向到 file_xyz.asp
directory1/file_xyz.html 重定向到 directory1/file_xyz.asp
- 规则的语法是什么
- 这是一个过于宽泛的规则吗?如果我出于某种原因需要拥有诸如 file_abc.html 之类的物理文件,如何将其从重定向规则中排除?
- 我想我应该只使用 ISAPI_Rewrite http://www.isapirewrite.com/ 似乎有大量资源可用于使用 htaccess 进行重写,而使用 IIS 7 URL 重写的在线帮助很少。任何想法和/或建议
提前致谢
到目前为止,这是我用于 web.config 的语法
<rule name="RewriteHTMLtoASP" stopProcessing="true">
<match url="^([^/]+)\.html$" />
<conditions logicalGrouping="MatchAll" />
<action type="Rewrite" url="{R:1}.asp" />
</rule>
<rule name="RedirectASPtoHTML" stopProcessing="true">
<match url="^([^/]+)\.asp$" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_METHOD}" pattern="^GET$" />
</conditions>
<action type="Redirect" url="{R:1}.html" appendQueryString="false" />
</rule>
【问题讨论】:
-
听起来像是一个无限循环等待发生(asp -> html -> asp...)
标签: asp.net iis url-rewriting iis-7 web-config