我有一个简单的重写规则,使用IIS向导应该重写:
https://example.com/products/detail/ABC-123
到
https://example/com/products/detail. php?sku=ABC-123
规则是:
<rule name="RewriteUserFriendlyURL2" stopProcessing="true">
<match url=".*/products/detail/([^/]+)/?$" />
<conditions>
</conditions>
<action type="Rewrite" url="https://example.com/products/detail.php?sku={R:1}" />
</rule>
当我在IIS编辑规则->测试模式对话框中测试友好URL时,
R:0是https://example.com/products/detail/ABC-123
R:1是ABC-123。
然而,当我在浏览器中输入友好的URL时,我只是得到一个404错误。不幸的是,我不能看到它实际输出的重写网址,有没有办法找出结果?
1条答案
按热度按时间unftdfkk1#
请尝试以下重写规则:
我做了以下测试,结果很成功。
首先,我在本地创建了一个简单的测试ASP.NET页面,并将其命名为detail. aspx。我可以通过访问http://localhost/products/detail. aspx正确浏览页面?sku=ABC-123。
然后我创建了一个简单的重写规则,将使用以下格式重写URL:
http://localhost/products/detail/ABC-123
收件人:
http://localhost/products/detail. aspx?sku=ABC-123。
最后,我测试了这个规则是否正确地重写了URL。我打开网页浏览器,请求以下URL:
http://localhost/products/detail/ABC-123
您可以看到,Web服务器上的重写规则已将原始URL更改为detail.aspx,并将“ABC-123”作为查询字符串参数的值传递。