Don*_*Don 4 mod-rewrite url-rewriting iis-7.5
我希望用户访问我的Intranet测试网站 - http:// mywebsite:9090如果他们键入http:// mywebsite/test.
我正在关注部分 - 7.在http://blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx中反向代理到另一个站点/服务器来创建一个网址重写.
选中位于IIS管理器中的"应用程序请求路由"功能视图中的"启用代理"复选框.我有规则 -
<rule name="Proxy">
<match url="(.*/test)" />
<action type="Rewrite" url="http://{HTTP_HOST}:9090/{R:1}" />
</rule>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.它没有指向http:// mywebsite:9090,但打印出找不到http:// mywebsite/test.
通过使用 - 更改规则以查看它是否是代理问题 -
<rule name="Proxy">
<match url="(.*)" />
<action type="Rewrite" url="http://{HTTP_HOST}:9090/{R:1}" />
</rule>
Run Code Online (Sandbox Code Playgroud)
当我浏览http:// mywebsite时,我可以看到它可以引导我访问http:// mywebsite:9090.
我的第一条规则会怎样?
谢谢您的帮助.
你想要的是规则:
"^试验(/.*)?$"
你的行动可以保持不变.
根据上面的规则,你会说"如果url的HTTP_HOST部分之后的第一件事(包括第一个斜杠,即"http://mywebsite.com/")等于test,那么你创建一个捕获在URL的所有其余部分(如果有的话)上,重写URL以获得HTTP_HOST,添加端口9090,然后追加第一个捕获组中的任何内容(即R:1,无论是什么在parens中在正则表达式).
确保取消选中追加查询字符串,因为您正在捕获正则表达式中所需的内容而不需要它.
归功于它应有的地方,我也在努力解决这个问题并找到了我需要的东西:
http://forums.iis.net/t/1180781.aspx
| 归档时间: |
|
| 查看次数: |
5088 次 |
| 最近记录: |