[英]URL Rewrite not working on IIS 10.0
我在IIS 10.0上使用URL重写,并在服务器级别(applicationHost.config)配置了以下规则。 我也没有在我的web.config中尝试过它。
<rewrite>
<globalRules>
<rule name="redirect">
<match url="/admin" />
<conditions>
<add input="{REMOTE_ADDR}" pattern="10.30.*.*" negate="true" />
</conditions>
<action type="Rewrite" url="/error" />
</rule>
</globalRules>
</rewrite>
这里有什么明显的错误吗? 我希望尝试点击/ admin的所有外部流量都重定向到错误页面,并且仅允许单个内部IP块对其进行访问。 把我的头发拉过来。
您可能需要安装“应用程序请求路由”,它是IIS的扩展,可在以下位置获得: https : //www.iis.net/downloads/microsoft/application-request-routing
匹配正则表达式中存在问题。 它不应该以斜杠开头。 正确的是^admin
( ^
表示网址的开头)
<rule name="redirect">
<match url="^admin" />
<conditions>
<add input="{REMOTE_ADDR}" pattern="10.30.*.*" negate="true" />
</conditions>
<action type="Rewrite" url="/error" />
</rule>
我有几点注意事项:
1)对于IP验证,最好使用如下正则表达式: 10.30.[0-9]{1,3}.[0-9]{1,3}
而不是10.30.*.*
2)取决于您的负载平衡器和网络基础结构,但是您可能需要检查{HTTP_X_Forwarded_For}
标头而不是{REMOVE_ADDR}
,因为客户端的IP可能在不同的标头中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.