我正在尝试为IIS服务器配置重定向规则。
我已经检查了所有的文档以及站点上的其他几个例子,但是当模式匹配时,我似乎无法获得所请求的URL来捕获。我试着在IIS规则编辑器中测试regex,它显示它是正确匹配的。我也设置了一些条件,并测试了它们,但是,它似乎也不起作用。
以下是xml中的规则
<rule name="product_detail.asp redirect to aspx" stopProcessing="true">
<match url="http:\/\/ten\.perle\.com\/products\/product_detail.asp\?(.*)&(.*)&(.*)" />
<conditions>
<add input="{QUERY_STRING}" pattern="http:\/\/ten\.perle\.com\/products\/product_detail.asp\?(.*)&(.*)&(.*)" />
</conditions>
<action type="Redirect" url="products/product_detail.aspx?{C:1}&{C:2}&{C:3}" appendQueryString="false" />
</rule>样本url detail.asp?a=2&i=08000514&c=1650
我不明白我到底做错了什么,似乎我的正则表达式应该捕捉到请求,但出于某种原因,它似乎从未被捕获过。
发布于 2022-06-30 09:35:14
我觉得你的URL规则似乎有问题。
例如,向以下URL发送请求:
http://ten.perle.com/products/product_detail.asp?id=123&name=test匹配URL中的模式应该是URL的路径部分:products/product_detail.aspQUERY_STRING服务器变量与URL参数字符串的部分匹配:id=123&name=test
您可以尝试修改您的规则并查看它是否有效。
此外,还可以在IIS中使用失败的请求跟踪进行故障排除。FailedReqLogFiles文件夹中的日志文件可以详细查看重写的整个过程,并可以检查匹配失败的位置。
发布于 2022-06-30 15:48:08
所以这个问题是用下面的规则解决的
<rule name="product_detail.asp redirect" stopProcessing="true">
<match url="^(products/product_detail.asp?)([^x]+)$" />
<action type="Redirect" url="products/product_detail.aspx?{R:2}" />
</rule>有些事情,我想包括,以防其他人面临类似的问题。有些事情需要澄清。
另外,to还在致力于IISv10.0希望,这有助于其他一些希望这样做的初学者,并澄清IIS重定向中一些不太明显的方面。
https://stackoverflow.com/questions/72804811
复制相似问题