我在〜/ blog使用此子域blog.fujiy.net
上有一个虚拟应用程序要获取正确的链接,我正在使用此配置:
<rewrite>
<rules>
<rule name="Remove Virtual Directory">
<match url=".*" />
<action type="Rewrite" url="{R:0}" />
</rule>
</rules>
</rewrite>
但是,如果有人访问blog.fujiy.net/blog,它就不会重定向到blog.fujiy.net。
我无法解决这个问题。我尝试了很多配置.... 每次我尝试做一个条件如果url以/ blog / IIS开头总是返回true,那么我得到一个无限循环。
答案 0 :(得分:0)
正则表达式让我害怕,但试试这个;它似乎可以快速测试:
<rewrite>
<rules>
<rule name="Remove Virtual Directory" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^blog\..*" />
<add input="{PATH_INFO}" pattern="^/blog" />
</conditions>
<action type="Redirect" url="/" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
答案 1 :(得分:0)
唯一支持开箱即用的方案是:
您有两个或更多应用程序:将其命名为server.example.com/foo和server.example.com/bar。您可以配置IIS的重写以执行简单的子域 - &gt;应用路径映射,例如foo.example.com - &gt; server.example.com/foo; foo.example.com/path - &gt; server.example.com/foo/path; bar.example.com/path - &gt; server.example.com/bar/path等。在这些示例中,子域本身必须直接映射到应用程序根目录。
要完成此操作,foo.example.com/customers/view/42将映射到server.example.com/foo/customers/view/42,如果您使用的是标准{controller} / {action } / {id}路由标记为{controller = customers,action = view,id = 42}。