ecshop在IIS7 8上的rewrite重写规则web.config,以下才是正确姿势:
其实iisrewrite配置成功后,相应的rewrite规则写到根目录的web.config文件中即可。ecshop2.7.3对应的规则如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Index" stopProcessing="true">
<match url="^index.html" />
<action type="Rewrite" url="index.php" />
</rule>
<rule name="Feed-C" stopProcessing="true">
<match url="^feed-c([0-9]+).xml" />
<action type="Rewrite" url="feed.php?cat={R:1}" />
</rule>
<rule name="Feed-B" stopProcessing="true">
<match url="^feed-b([0-9]+).xml" />
<action type="Rewrite" url="feed.php?brand={R:1}" />
</rule>
<rule name="Feed" stopProcessing="true">
<match url="^feed.xml" />
<action type="Rewrite" url="feed.php" />
</rule>
<rule name="Category6" stopProcessing="true">
<match url="^category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />
<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}&price_min={R:3}&price_max={R:4}&filter_attr={R:5}&page={R:6}&sort={R:7}&order={R:8}" />
</rule>
<rule name="Category5" stopProcessing="true">
<match url="^category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*).html" />
<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}&price_min={R:3}&price_max={R:4}&filter_attr={R:5}" />
</rule>
<rule name="Category4" stopProcessing="true">
<match url="^category-([0-9]+)-b([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />
<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}&page={R:3}&sort={R:4}&order={R:5}" />
</rule>
<rule name="Category3" stopProcessing="true">
<match url="^category-([0-9]+)-b([0-9]+)-([0-9]+).html" />
<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}&page={R:3}" />
</rule>
<rule name="Category2" stopProcessing="true">
<match url="^category-([0-9]+)-b([0-9]+).html" />
<action type="Rewrite" url="category.php?id={R:1}&brand={R:2}" />
</rule>
<rule name="Category1" stopProcessing="true">
<match url="^category-([0-9]+).html" />
<action type="Rewrite" url="category.php?id={R:1}" />
</rule>
<rule name="Goods" stopProcessing="true">
<match url="^goods-([0-9]+).html" />
<action type="Rewrite" url="goods.php?id={R:1}" />
</rule>
<rule name="Cat3" stopProcessing="true">
<match url="^article_cat-([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />
<action type="Rewrite" url="article_cat.php?id={R:1}&page={R:2}&sort={R:3}&order={R:4}" />
</rule>
<rule name="Cat2" stopProcessing="true">
<match url="^article_cat-([0-9]+)-([0-9]+).html" />
<action type="Rewrite" url="article_cat.php?id={R:1}&page={R:2}" />
</rule>
<rule name="Cat1" stopProcessing="true">
<match url="^article_cat-([0-9]+).html" />
<action type="Rewrite" url="article_cat.php?id={R:1}" />
</rule>
<rule name="Articles" stopProcessing="true">
<match url="^article-([0-9]+).html" />
<action type="Rewrite" url="article.php?id={R:1}" />
</rule>
<rule name="Brand4" stopProcessing="true">
<match url="^brand-([0-9]+)-c([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />
<action type="Rewrite" url="brand.php?id={R:1}&cat={R:2}&page={R:3}&sort={R:4}&order={R:5}" />
</rule>
<rule name="Brand3" stopProcessing="true">
<match url="^brand-([0-9]+)-c([0-9]+)-([0-9]+).html" />
<action type="Rewrite" url="brand.php?id={R:1}&cat={R:2}&page={R:3}" />
</rule>
<rule name="Brand2" stopProcessing="true">
<match url="^brand-([0-9]+)-c([0-9]+).html" />
<action type="Rewrite" url="brand.php?id={R:1}&cat={R:2}" />
</rule>
<rule name="Brand1" stopProcessing="true">
<match url="^brand-([0-9]+).html" />
<action type="Rewrite" url="brand.php?id={R:1}" />
</rule>
<rule name="Search" stopProcessing="true">
<match url="^tag-([_0-9a-z-]+).html" />
<action type="Rewrite" url="search.php?keywords={R:1}" />
</rule>
<rule name="Snatch" stopProcessing="true">
<match url="^snatch-([0-9]+).html" />
<action type="Rewrite" url="snatch.php?id={R:1}" />
</rule>
<rule name="Group_Buy" stopProcessing="true">
<match url="^group_buy-([0-9]+).html" />
<action type="Rewrite" url="group_buy.php?act=view&id={R:1}" />
</rule>
<rule name="Auction" stopProcessing="true">
<match url="^auction-([0-9]+).html" />
<action type="Rewrite" url="auction.php?act=view&id={R:1}" />
</rule>
<rule name="Exchange5" stopProcessing="true">
<match url="^exchange-id([0-9]+).html" />
<action type="Rewrite" url="exchange.php?id={R:1}&act=view" />
</rule>
<rule name="Exchange4" stopProcessing="true">
<match url="^exchange-([0-9]+)-min([0-9]+)-max([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />
<action type="Rewrite" url="exchange.php?cat_id={R:1}&integral_min={R:2}&integral_max={R:3}&page={R:4}&sort={R:5}&order={R:6}" />
</rule>
<rule name="Exchange3" stopProcessing="true">
<match url="^exchange-([0-9]+)-([0-9]+)-(.+)-([_0-9a-z-]+).html" />
<action type="Rewrite" url="exchange.php?cat_id={R:1}&page={R:2}&sort={R:3}&order={R:4}" />
</rule>
<rule name="Exchange2" stopProcessing="true">
<match url="^exchange-([0-9]+)-([0-9]+).html" />
<action type="Rewrite" url="exchange.php?cat_id={R:1}&page={R:2}" />
</rule>
<rule name="Exchange1" stopProcessing="true">
<match url="^exchange-([0-9]+).html" />
<action type="Rewrite" url="exchange.php?cat_id={R:1}" />
</rule>
<rule name="Topic" stopProcessing="true">
<match url="^topic-([0-9]+).html" />
<action type="Rewrite" url="topic.php?topic_id={R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
一开始网站试了很多规则,都提示某行错误,白色不得其解,后来发现是“&”搞的鬼,把对应的“&”都修改为“&”即可。