URLRewrite是"排序"工作。如果我从https://devbox.mysite.com/?title=test-article中取出?title = 并将其设为 https://devbox.mysite.com/test-article ,则该页面仍会正常加载。但问题是,它仍会在客户端的URL地址上显示https://devbox.mysite.com/?title=test-article。我不了解它的工作情况,但它仍在客户端的浏览器上显示实际的URL。以下是我的URLRewrite规则。任何建议都非常感谢。
<rule name="KB-rewrite" enabled="true">
<match url="^kb/article/([a-zA-Z0-9\-]+)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{QUERY_STRING}" pattern="1" negate="true" />
</conditions>
<action type="Rewrite" url="kb/article/?title={R:1}" appendQueryString="false" />
</rule>
我以为我昨天弄明白了,但事实并非如此。我重新编辑了这篇文章,因为我认为这与ColdFusion以及我们的CommonSpot CMS有关。问题是,为什么它显示?titlte =在没有它的URL中,它仍然有效?什么可能导致这种行为?我在哪里可以开始排除故障?
答案 0 :(得分:0)
好的,这一次我弄明白了。 IIS URLRewrite按预期工作,因为如果我删除了?title =,页面仍会加载。问题是,在搜索结果超链接中,我将?ititle =作为URL的一部分,因此当用户点击结果时,它会将URL显示为包含?title =。由于URLRewrite正常工作,我所要做的就是从每个结果的超链接中删除?title =,我的问题就解决了。