由于在其他线程中发现了结果问题,因此我们对文件结构进行了一些修改,现在我们回到了开始的地方。我已经签出了该线程,但是该问题也没有答案。
我们希望URL在浏览器上显示: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上的重写规则,但是当我添加规则时,即使该指令表明存在重写,我也看不到“重写”选项。这是我的设置,没有显示选项。无论如何,这只是诊断我的URL重写问题的一个附带问题。
好的,所以我终于弄清楚了我的问题的答案。匹配网址将与文件夹kb / artitcle /匹配,而a-ZA-Z-将只允许单词和破折号。在我的情况下,只会传递一个参数,因此我有意忽略了&字符,因为在CommonSpot CMS中,它在URL的末尾添加了一个&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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句