echsop v2.7.2在iis下的用简化版ISAPI_Rewrite静态化出现的问题

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

我的是vps,环境是MySQL545+ php+ phpMyAdmin+ zend+iis。(我的用的是ecshop v2.7.2版本做的站)我开始装了ISAPI_Rewrite3_0064_Lite.msi,然后这个是针对整个服务器站点来设置规则的。我把其中干冰站点ecshop静态化规则加进去后,可以部分静态化,比如:http://www.taobaohg.com/category-2-b0.html,可知静态化基本设置好,就是规则再有些要修改好。

后来我看到一个帖子说陆续加进去的站点静态化规则可能导致有些站点静态化无效(ps:我是vps,所以准备是放多个站点的),最好针对每个站点来单独分开设置规则。他的建议就是这个帖子里的意思 http://hi.baidu.com/%B7%BD%D3%B3 ... acb99c0b7b82f4.html。然后我找到个简化版ISAPI_Rewrite,我按照说明来操作啦。我把ISAPI_Rewrite这个文件夹放在要设置的站点根目录下,比如D:\ganbing\wwwroot\ISAPI_Rewrite 。我把开始一样的规则复制进D:\ganbing\wwwroot\ISAPI_Rewrite里的httpd.ini文件夹里。然后我重启iis,在ecshop做的站点后台清除缓存,(后台的简单url重写我也开始设置好啦的) 但是静态化无效,http://www.taobaohg.com/category-2-b0.html这个开始静态化好的页面打不开,可以进入首页http://www.taobaohg.com,点商品分类下的比如块状干冰,就可以看到,静态化页面打不开。这是怎么回事。一样的规则,难道哪里没设好?麻烦帮看看。在线等。谢谢啦。

贴上我的httpd.ini规则(也是网上找的,后台用简化版ISAPI_Rewrite在单个网站文件夹下里的httpd.ini把第一行删啦 RewriteCond %{HTTP:Host} www.taobaohg.com 也不行。):

RewriteCond %{HTTP:Host} www.taobaohg.com

RewriteRule ^(.*)/index.html$ $1/index\.php
RewriteRule ^(.*)/category$$1/index\.php
RewriteRule ^(.*)/feed-c([0-9]+).xml$$1/feed\.php\?cat=$2
RewriteRule ^(.*)/feed-b([0-9]+).xml$$1/feed\.php\?brand=$2
RewriteRule ^(.*)/feed.xml$$1/feed\.php
RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html$ $1/category\.php\?id=$2&brand=$3&price_min=$4&price_max=$5&filter_attr=$6&page=$7&sort=$8&order=$9
RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)\.html$ $1/category\.php\?id=$2&brand=$3&price_min=$4&price_max=$5&filter_attr=$6
RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html$$1/category\.php\?id=$2&brand=$3&page=$4&sort=$5&order=$6
RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)-([0-9]+)(.*)\.html$ $1/category\.php\?id=$2&brand=$3&page=$4
RewriteRule ^(.*)/category-([0-9]+)-b([0-9]+)(.*)\.html$$1/category\.php\?id=$2&brand=$3
RewriteRule ^(.*)/category-([0-9]+)(.*)\.html$$1/category\.php\?id=$2
RewriteRule ^(.*)/goods-([0-9]+)(.*)\.html$ $1/goods\.php\?id=$2
RewriteRule ^(.*)/article_cat-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html$$1/article_cat\.php\?id=$2&page=$3&sort=$4&order=$5
RewriteRule ^(.*)/article_cat-([0-9]+)-([0-9]+)(.*)\.html$ $1/article_cat\.php\?id=$2&page=$3
RewriteRule ^(.*)/article_cat-([0-9]+)(.*)\.html$ $1/article_cat\.php\?id=$2
RewriteRule ^(.*)/article-([0-9]+)(.*)\.html$$1/article\.php\?id=$2
RewriteRule ^(.*)/brand-([0-9]+)-c([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)\.html$1/brand\.php\?id=$2&cat=$3&page=$4&sort=$5&order=$6
RewriteRule ^(.*)/brand-([0-9]+)-c([0-9]+)-([0-9]+)(.*)\.html $1/brand\.php\?id=$2&cat=$3&page=$4
RewriteRule ^(.*)/brand-([0-9]+)-c([0-9]+)(.*)\.html $1/brand\.php\?id=$2&cat=$3
RewriteRule ^(.*)/brand-([0-9]+)(.*)\.html$1/brand\.php\?id=$2
RewriteRule ^(.*)/tag-(.*)\.html$1/search\.php\?keywords=$2
RewriteRule ^(.*)/snatch-([0-9]+)\.html$$1/snatch\.php\?id=$2
RewriteRule ^(.*)/group_buy-([0-9]+)\.html$$1/group_buy\.php\?act=view&id=$2

回答:
补充下:我的ISAPI_Rewrite.dll添加是成功的,因为在iis里属性-isapi筛选器看到是绿色高亮箭头,优先级是高。然后我的规则是开始第一次操作有效,第二次操作就是第一次的规则。后台我也开启了url简单重写,我现在真的没想到问题在哪?希望哪位抽空帮我看看。谢谢啦。

VPS 建议你使用apache 那样设置多站点规则方便一些

谢谢齐迹啊,vps我开始也是想用apache,但是装了apache不能用iis,vps也是花了些时间熟悉iis环境下的配置,而且vps空间商建议我不要用apache,怕到时其他操作不熟悉更麻烦。所以只好采用iis。
iis下的静态化应该是可以的。只是自己肯定是哪里没弄好。

解决啦,没想到软件里有个这个文件。还是官方的正解,用ECShop_V2.7.2_GBK_Release0604\docs\URLRewrite.txt,复制* 二、IIS 服务器里的代码。

本以为没事啦。官方的httpd.ini规则里,商品分类 商品详细页 新闻内容页 都可以静态化,当时首页和新闻分类页不能静态化,我以为修改下就没问题,后来修改问题又来啦,我修改、添加都没效果,即使把可以静态化的代码比如RewriteRule ^(.*)/goods-([0-9]+)(.*)\.html$$1/goods\.php\?id=$2 [I]我就是把goods去掉一个s,RewriteRule ^(.*)/good-([0-9]+)(.*)\.html$$1/goods\.php\?id=$2 [I]也是显示为404错误页。这到底哪里问题?文件的权限我都开啦。没想到一个静态化弄得这么麻烦。哪位朋友帮忙看看啦。先谢拉。

有哪位大虾可以告诉我,如何让访问的URL 自动变成静态化啊, 我的静态化可以访问,但是浏览页面时默认的却是动态页面. 知道的朋友加我 qq286421220或者回复我啊.谢谢




你把文件名也改了试试看。