iis伪静态正确,但是伪静态不能实现的解决办法

widuu 2013-5-16 PHP技术 5,121 0 喜欢 (0)

我在做一个东西的伪静态的时候发现匹配的规则没有错但是就是不能实现是怎么个情况呢?

我总结了两个伪静态不能实现的解决方案,这两个都是我们真正的遇到的,第一个就是伪静态有两个,我用的是iis7
[js]
<rule name="list" enabled="true">
<match url="^(.*)list-([0-9]+)-([0-9]+)\.html\?*(.*)$" />
<action type="Rewrite" url="{R:1}index.php?m=content&amp;c=index&amp;a=lists&amp;catid={R:2}&amp;page={R:3}" />
</rule>
<rule name="list" enabled="true">
<match url="^(.*)list/list-([0-9]+)-([0-9]+)\.html\?*(.*)$" />
<action type="Rewrite" url="index.php?m=content&amp;c=index&amp;a=lists&amp;catid={R:2}&amp;page={R:3}" />
</rule>
[/js]
上边两个伪静态,第一个是我用的phpcms搬过来向模仿写下,然后留下来的我打算匹配成url/list/list-1-1-1.html伪静态规则正确但是不管用是怎么回事呢?删除第一个冲突了!

第二种我想匹配 url/city/
[js]
<rule name="list" enabled="true">
<match url="^(.*)list-([0-9]+)-([0-9]+)\.html\?*(.*)$" />
<action type="Rewrite" url="{R:1}index.php?m=content&amp;c=index&amp;a=lists&amp;catid={R:2}&amp;page={R:3}" />
</rule>
<rule name="city" stopProcessing="false">
<match url="^(.*)city/$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="{R:1}/index.php?m=content&amp;c=index&amp;a=lists&amp;catid=16" appendQueryString="false" />
</rule>
[/js]
不能实现怎么回事?第一个url伪静态有自上而下开始匹配的规则,第一个匹配到了,第二个就不匹配了,所以调一下优先级就可以了,例如下边的
[js]
<rule name="city" stopProcessing="false">
<match url="^(.*)city/$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="{R:1}/index.php?m=content&amp;c=index&amp;a=lists&amp;catid=16" appendQueryString="false" />
</rule>
<rule name="list" enabled="true">
<match url="^(.*)list-([0-9]+)-([0-9]+)\.html\?*(.*)$" />
<action type="Rewrite" url="{R:1}index.php?m=content&amp;c=index&amp;a=lists&amp;catid={R:2}&amp;page={R:3}" />
</rule>
[/js]

转载请注明来自微度网络,本文标题:《iis伪静态正确,但是伪静态不能实现的解决办法》

喜欢 0 发布评论
Top