我们已经修改了我们的文件结构,因为我们在其他thread中发现了结果问题,现在我们又回到了我们已经开始的地方。我已经检查了这个thread,但也没有回答这个问题。
我们希望网址在浏览器上显示:https://devbox.mysite.com/kb/article/test-article-1。
以下是我的网址重写:
<rule name="Article-rewrite" enabled="true">
<match url=".com/kb/article/(.*)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="https://devbox.mysite.com/kb/article/?artID={R:1}" appendQueryString="false" />
</rule>
我已启用失败请求跟踪来跟踪IIS上的重写规则,但是当我添加规则时,我没有看到重写作为选项,即使此instruction显示它在那里。这是我的设置,它没有显示选项。无论如何,这只是诊断我的网址重写问题的一个侧面问题。
答案 0 :(得分:0)
好的,所以我终于找到了问题的答案。匹配URL将匹配文件夹kb / artitcle /,而a-ZA-Z-将仅允许单词和短划线。在我的情况下,只会传递一个参数,所以我故意忽略&符号,因为在CommonSpot CMS中它会在URL的末尾添加&amp; cs_pgIsInLView = 1 ,这会导致重写规则打破。因此,忽略这个&符号,它适用于我的情况。当我尝试使用url https://devbox.mysite.com/index.cfm?login=1登录页面时,query_string模式1将忽略重写。我猜可能还有其他更好的方法,但现在,这将是必须的。
<rule name="Article-rewrite" enabled="true">
<match url="^kb/article/([a-zA-Z\-]+)$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{QUERY_STRING}" pattern="1" negate="true" />
</conditions>
<action type="Rewrite" url="kb/article/?artID={R:1}" appendQueryString="false" />
</rule>