我已经在我的 Windows Server 2012 上通过 Web 组件安装了 IIS Rewrite 2.0 模块。
我已经阅读了几篇文章,但我似乎无法让我的简单重写工作。
我想改写http://www.acme.com/news/13/Jan/20
为http://www.acme.com/news.html#20-Jan-13
这是我正在使用的规则:
<rule name="news articles" stopProcessing="true">
<match url="^news\/(.*)\/(.*)\/(.*)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="news.html#{R:3}-{R:2}-{R:1}" appendQueryString="false" />
</rule>
当我申请http://www.acme.com/news/13/Jan/20
作为我的测试模式时,重写工作。
但是,如果我浏览到http://www.acme.com/news/13/Jan/20
我会收到 404 错误:
Requested URL http://www.acme.com/news.html#20-Jan-13
Physical Path C:\Webs\acme.com\www\news.html#20-Jan-13
物理文件 news.html 存在,我可以直接浏览到它。
是不是把事情搞砸了?显然 C:\Webs\acme.com\www\news.html#20-Jan-13 不是物理文件,但我不知道如何解决这个问题。
我当然可以毫无问题地直接浏览http://www.acme.com/news.html#20-Jan-13 。
有人可以帮忙吗?
提前谢谢了。
干杯,马克