IIS重写 - 从URL中删除实际文件夹

时间:2017-05-29 21:25:50

标签: iis url-rewriting

拜托,我有这个文件夹:

root/teste_seo/script.asp

而是使用网址:

www.mysite.com/teste_seo/script.asp

我需要使用IIS重写这个URL:

www.mysite.com/script.asp

我尝试使用此链接中的规则但不起作用:

IIS 7.5 URL Rewrite - Rewrite a Folder from an URL

请问,我该如何写这条规则?

PS。:对于teste_seo文件夹中的任何* .asp文件。

1 个答案:

答案 0 :(得分:0)

以下规则可以解决问题:

<rule name="teste_seo" stopProcessing="true">
    <match url="^script.asp" />
    <action type="Rewrite" url="/teste_seo/script.asp" />
</rule>

然后链接到www.mysite.com/script.asp

OP发表评论后编辑:

如果是这样,只要您在文档的根目录中有脚本文件的副本,就可以使用以下规则:

<rule name="teste_seo" stopProcessing="true">
    <match url="^teste_seo/([^\.]+\.asp)" />
    <action type="Redirect" url="/{R:1}" />
</rule>

如果您需要所有脚本文件指向可以使用的相同文件:

<rule name="teste_seo" stopProcessing="true">
    <match url="^teste_seo/([^\.]+\.asp)" />
    <action type="Redirect" url="/script.asp" />
</rule>

澄清后再次编辑:

这两条规则应该是您需要的修复:

<rule name="teste_seo_redirect" stopProcessing="true">
    <match url="^teste_seo/([^\.]+\.asp)" />
    <action type="Redirect" url="/{R:1}" />
</rule>
<rule name="teste_seo_rewrite" stopProcessing="true">
    <match url="^([^\.]+\.asp)" />
    <action type="Rewrite" url="/teste_seo/{R:1}" />
</rule>