我需要为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
提前致谢
到目前为止,这是我对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>
答案 0 :(得分:3)
试试这个,你应该知道$ tag是重定向/重写条件的结束并且不接受查询字符串
<rule name="RewriteHTMLtoASP" stopProcessing="true">
<match url="(.*).html(.*)" />
<conditions logicalGrouping="MatchAll" />
<action type="Rewrite" url="{R:1}.asp{R:2}" />
</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{R:2}" appendQueryString="true" />
</rule>
答案 1 :(得分:0)
看看这篇文章: http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx
您可以通过web.config设置重新编写网页。 如果您使用共享主机,我不建议使用ISAPI。
让我知道它是否适合你。
此致,Anvar