ECShop IIS 重写规则,大家帮忙测试一下

2016-07-07 15:19 来源:www.chinab4c.com 作者:ecshop专家

不少用户反应之前的IIS重写规则有问题,比如分页无法切换,显示方式出错,甚至有时候出现页面找不到的情况。

针对这些问题,我重写了一份重写规则。因为我这里的开发环境都是apache的,所以无法测试,之前我单独写了category部分的IIS重写规则,facke帮着测试了一下,没有问题了。现在我把全部规则都重写了一下。

劳烦各位使用IIS服务器的同学帮忙测试一下这个新的重写规则。发现问题直接跟帖回复即可,回帖时贴上你的出现错误的网址或者你网站的网址以及错误的重现操作步骤,我会及时修正。

2009.12.24更新
  1. *******************************************************************************
  2. * 二、IIS 服务器
  3. *******************************************************************************

  4. 1、首先请进入以下网址 http://www.helicontech.com/download/,下载免费版的
  5. ISAPI_Rewrite组件:ISAPI_Rewrite Lite ( freeware )。如果您仅仅是测试用途使用
  6. 这个就足够了,如果您是商业应用建议您购买完整版的 ISAPI_Rewrite Full。

  7. 如果您无法访问以上网址,您也可以到我们的网站上下载:http://www.ecshop.com

  8. 2、点击下载到本地的文件 isapi_rwl_x86_0064.msi (该文件名和您下载的版本有关)
  9. 进行安装,安装成功之后进入安装目录(默认在
  10. C:/Program Files/Helicon/ISAPI_Rewrite)找到httpd.ini文件,点击右键将文件只读
  11. 属性去掉。然后进入: 开始菜单->程序->Helicon->ISAPI_Rewrite->httpd.ini,
  12. 点击打开 httpd.ini 文件。

  13. 3、复制下面的内容到httpd.ini文件

  14. 4、保存 httpd.ini,进入 ecshop 管理中心->商店设置,将 URL 重写设置为启用。


  15. [ISAPI_Rewrite]

  16. # 为了确保重写规则不影响服务器上的其他站点
  17. # 请将下面的语句前的#号去掉,并将(?:www\.)?site1\.com改为商店所在域名

  18. #RewriteCond %{HTTP:Host} (?:www\.)?site1\.com

  19. RewriteRule ^(.*)/index.html(\??)(.*)$ $1/index\.php\?$3[I]
  20. RewriteRule ^(.*)/feed-c([0-9]+).xml(\??)(.*)$$1/feed\.php\?$4&cat=$2[I]
  21. RewriteRule ^(.*)/feed-b([0-9]+).xml(\??)(.*)$$1/feed\.php\?$4&brand=$2[I]
  22. RewriteRule ^(.*)/feed-type([^-]+)\.xml(\??)(.*)$$1/feed\.php\?$4&type=$2 [I]
  23. RewriteRule ^(.*)/feed.xml(\??)(.*)$$1/feed\.php\?$3[I]

  24. RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html(\??)(.*)$$1/category\.php\?$12&id=$2&brand=$3&price_min=$4&price_max=$5&filter_attr=$6&page=$7&sort=$8&order=$9[I]
  25. RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)\.html(\??)(.*)$$1/category\.php\?$8&id=$2&brand=$3&price_min=$4&price_max=$5&filter_attr=$6 [I]
  26. RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html(\??)(.*)$$1/category\.php\?$9&id=$2&brand=$3&page=$4&sort=$5&order=$6[I]
  27. RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)-([0-9]+)(.*)\.html(\??)(.*)$$1/category\.php\?$7&id=$2&brand=$3&page=$4 [I]
  28. RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)(.*)\.html(\??)(.*)$$1/category\.php\?$6&id=$2&brand=$3[I]
  29. RewriteRule ^(.*)/category-([0-9]+)(.*)\.html(\??)(.*)$$1/category\.php\?$5&id=$2[I]
  30. RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)\.html(\??)(.*)$$1/category\.php\?$5&id=$2&brand=$3[I]

  31. RewriteRule ^(.*)/goods-([0-9]+)(.*)\.html(\??)(.*)$$1/goods\.php\?$5&id=$2[I]
  32. RewriteRule ^(.*)/article_cat-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html(\??)(.*)$$1/article_cat\.php\?$8&id=$2&page=$3&sort=$4&order=$5[I]
  33. RewriteRule ^(.*)/article_cat-([0-9]+)-([0-9]+)(.*)\.html(\??)(.*)$$1/article_cat\.php\?$6&id=$2&page=$3 [I]
  34. RewriteRule ^(.*)/article_cat-([0-9]+)(.*)\.html(\??)(.*)$$1/article_cat\.php\?$5&id=$2[I]
  35. RewriteRule ^(.*)/article-([0-9]+)(.*)\.html(\??)(.*)$$1/article\.php\?$5&id=$2 [I]

  36. RewriteRule ^(.*)/brand-([0-9]+)-c([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)\.html(\??)(.*)$$1/brand\.php\?$8&id=$2&cat=$3&page=$4&sort=$5&order=$6 [I]
  37. RewriteRule ^(.*)/brand-([0-9]+)-c([0-9]+)-([0-9]+)(.*)\.html(\??)(.*)$ $1/brand\.php\?$7&id=$2&cat=$3&page=$4[I]
  38. RewriteRule ^(.*)/brand-([0-9]+)-c([0-9]+)\.html(\??)(.*)$$1/brand\.php\?$5&id=$2&cat=$3[I]
  39. RewriteRule ^(.*)/brand-([0-9]+)-c([0-9]+)(.*)\.html(\??)(.*)$ $1/brand\.php\?$6&id=$2&cat=$3[I]
  40. RewriteRule ^(.*)/brand-([0-9]+)(.*)\.html(\??)(.*)$$1/brand\.php\?$5&id=$2[I]
  41. RewriteRule ^(.*)/tag-(.*)\.html(\??)(.*)$$1/search\.php\?$4&keywords=$2[I]

  42. RewriteRule ^(.*)/snatch-([0-9]+)\.html(\??)(.*)$$1/snatch\.php\?$4&id=$2[I]
  43. RewriteRule ^(.*)/group_buy-([0-9]+)\.html(\??)(.*)$$1/group_buy\.php\?$4&act=view&id=$2[I]
  44. RewriteRule ^(.*)/auction-([0-9]+)\.html(\??)(.*)$ $1/auction\.php\?$4&act=view&id=$2 [I]
  45. RewriteRule ^(.*)/exchange-id([0-9]+)(.*)\.html(\??)(.*)$$1/exchange\.php\?$5&id=$2&act=view[I]

  46. RewriteRule ^(.*)/exchange-([0-9]+)-min([0-9]+)-max([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html(\??)(.*)$$1/exchange\.php\?$10&cat_id=$2&integral_min=$3&integral_max=$4&page=$5&sort=$6&order=$7 [I]
  47. RewriteRule ^(.*)/exchange-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html(\??)(.*)$$1/exchange\.php\?$8&cat_id=$2&page=$3&sort=$4&order=$5 [I]
  48. RewriteRule ^(.*)/exchange-([0-9]+)-([0-9]+)(.*)\.html(\??)(.*)$$1/exchange\.php\?$6&cat_id=$2&page=$3[I]
  49. RewriteRule ^(.*)/exchange-([0-9]+)(.*)\.html(\??)(.*)$$1/exchange\.php\?$5&cat_id=$2[I]
复制代码
感觉这么看着比较乱的同学可以直接下载这个附件。
IISRewrite.txt (6.22 KB)

回答:
辛苦了

不错。请高手们去测试一下。。

这句没写进去RewriteRule ^(.*)/goods-([0-9]+)(.*)\.html\?from=rss$$1/goods\.php\?id=$2 [I]、会导致搜索引擎收录这样的页面时页面打不开:http://www.shanhetea.com/goods-61.html?from=rss

这句没写进去RewriteRule ^(.*)/goods-([0-9]+)(.*)\.html\?from=rss$$1/goods\.php\?id=$2 、会导致搜索引擎收录这样的页面时页面打不开:http://www.shanhetea.com/goods-61.html?from=rs ...
chenfeng 发表于 2009-12-22 13:25


23行的(\??)(.*)已经匹配了?from=rxx,不应该有问题,你是如何修改的重写规则?是否在修改完后有重启服务器?

点击商品分类均跳转到首页
地址:http://www.shanhetea.com
这样的页面打不开:
http://www.shanhetea.com/goods-61.html?from=rss

可惜我的服务器都是阿帕奇环境,与IIS无缘了,不过,谢谢ROBB分享,辛苦了……

帮顶!用iis的测试下啊!

我的就是用IIS测试的哦、不行的、没人 回应准备改回来了、不然网站不好访问了

强烈支持一下!

我的就是用IIS测试的哦、不行的、没人 回应准备改回来了、不然网站不好访问了
chenfeng 发表于 2009-12-22 22:10

你的重写规则是要放在全局的http.ini里面才能生效还是只放在根目录下就行?如果是放在根目录下就行的话可以把后台地址账号密码和FTP地址帐号密码发短消息给我,我帮你排查一下。



有问题,点击分类后,不能分类,像是回到了首页,

1# robb
from=rss的问题解决了,通配符很管用,www.domain.com/goods-1.html?suibianyigesanshu=123都可以访问。但是点首页商品分类的时候跳转不到分类页,仍然到首页。问题同12#

看下该id的分类是否存在,如果不存在会返回到首页

还有看下具体的分类的重写地址看下