IIS 7.5 URL重写 - 从URL重写文件夹(IIS 7.5 URL Rewrite - Re

2019-07-29 10:01发布

我使用IIS 7.5和URL重写。

我有以下文件层次结构中的网站:

webroot
webroot/LegacySite

双方的webroot /和传统的/是单独的应用程序文件夹中的IIS。


我需要重写我的网址,以便:

  • 如果请求http://mysite.co/LegacySite/page.aspx的URL将被改写,以http://mysite.co/page.aspx

下面我Web.Conf (在Web根目录文件夹)不能正常工作,你能指出我错过了什么?

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="MyRole" stopProcessing="true">
                        <match url=".*" />
                        <conditions>
                            <add input="{HTTP_HOST}" pattern="^mysite.com" />
                            <add input="{PATH_INFO}" pattern="^\LegacySite\" negate="true" />
                        </conditions>
                        <action type="Rewrite" url="\LegacySite\{R:0}" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    </configuration>

Answer 1:

下面应该工作:

<rule name="MyRole" stopProcessing="true">
    <match url="LegacySite/(.*)" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^mysite.com$" />
    </conditions>
    <action type="Rewrite" url="/{R:1}" appendQueryString="true" />
</rule>

你可能要删除的条件检查的主机名。 这真的重要吗? 你有绑定到该网站,你不想重定向发生任何其他域名? 它似乎没有必要。 你可能只需要:

<rule name="MyRole" stopProcessing="true">
    <match url="LegacySite/(.*)" />
    <action type="Rewrite" url="/{R:1}" appendQueryString="true" />
</rule>

我已经添加appendQueryString="true"任何(可选)查询字符串参数传递给重写URL。



文章来源: IIS 7.5 URL Rewrite - Rewrite a Folder from an URL