当前位置: 首页 > 图文教程 > 网站运营 > 建站经验 > IIS服务器以及Nginx下 ShopEx4.84伪静态

建站经验
11个PR7以上的国内网址导航站
国内现状 目前没几个博客能赚钱
网站推广最重要的2点 细节和坚持
给想通过博客赚钱的站长朋友的一些建议
网络推广经验 前期准备和发帖原则
盈利模式 细分市场是站长梦开始的地方
把握博客更新时间
总结网站推广中需要避免的12种推广方式
淘宝网店推广重点 抓住潜在的购买客户
建站杂谈 2010年web领域的预测
给用户一个无法拒绝的回访理由
建站案例 地方门户网站运营的心酸事
制作英文网站的基本流程
网站备案 图文教程
独立域名的英文博客从WordPress切换到Blogger的步骤
大胆尝试电子商务 改变传统盈利思路
404页面设计全攻略
以收购网站为名的商业间谍不可不防
运营企业网站来实现营销目标的经验
淘宝的站内搜索能改变搜索格局?

建站经验 中的 IIS服务器以及Nginx下 ShopEx4.84伪静态


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 92 ::
收藏到网摘: n/a

商派的主打产品ShopEx 4.84已经推出很久了。可以说这个产品是商城系统中的旗舰作品。用家可以根据自己的需要。建设自己的网店。在网上开展经营活动。但是做一个商城。很重要的一点就是要考虑到用户体验。很多网民,其实是通过搜索引擎进入我们的网店的。那么如何提高在搜索引擎中的排名,成了至关重要的一个环节,这就是所谓的SEO.

ShopEx目前最好的运行环境是在Linux+apache+php+mysql+zend.apache可以很好的支持伪静态规则的制定。因为他支援一个重要的模块。就是mod_rewrite模块。该模块能解析用户创建的 .htaccess 文件。该文件中可以制定很多用途。比如301重定向,302重定向,授权访问加密,404,403,500等错误页面的定制,以及URL地址重写。因为这里我们只是做ShopEx的伪静态,所以我们这里就只是用了URL地址重写这个功能。

虽然官方一再推荐用家使用Linux搭配apache服务器作为运行ShopEx的最佳环境,但是他似乎忘了一个问题,毕竟国内用家,所需要运行商城的空间很小。一般500M已经足够一个中规模的网店运营,所以大部分人都租用虚拟主机,而国内的虚拟主机目前还是被Windows所垄断.Linux服务器毕竟还是占少数。既然是Windows服务器,那么运载php的大部分还是落在IIS身上。但是IIS本身并不支持Rewrite(URL地址重写)。只能使用第三方软件,这类软件诸如isapi_rewrite.但是isapi_rewrite是收费软件,免费版本却在很多方面表现形如鸡肋。例如isapi_rewrite2.0版本运行ShopEx商城系统的时候。

根据最新的互联网服务器占有率的报告中可以看到,nginx已经取代了原本占据第三位置的Lighttpd服务器。成为继apache和IIS之后的第三大服务器软件。并且我们可以看到很多国内网站正在或者正在向Nginx服务器领域移动。像国内的落伍者论坛,Discuz,新浪博客,6间房等。说明使用这类软件的服务器还是存在的。而本篇文章中就涵盖了这三个排名占前的服务器部署ShopEx伪静态的方法。

先看一下Apache的伪静态规则部署。由于apache是官方所推荐的服务器软件,所以支持rewrite方面自然是很好的。但是还是要说一下。

Apache 的rewrite规则

RewriteEngine on

# 设置RewriteBase的值为你的商店目录地址

RewriteBase /

RewriteCond %{REQUEST_FILENAME} \。(html|xml|json|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|cgi|shtml|shtm|phtm)$

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?$1 [L]

rewrite启用方法,就是把root.htaccess改名成.htaccess。

更改.htaccess文件中rewritebase为你url的前缀

然后我们进入商场管理面板开启伪静态。如下图所示。 

rewrite

 当然,以上步骤,如果您是apache服务器并且支持mod_rewrite模块。可以直接到后台开启,程序会自动在根目录下生成.htaccess文件。当然你要注意根目录要有写权限。

配置 IIS 和 Nginx 前请先查阅这里

由于官方并不推荐IIS作为商城系统的服务器程序,而且直接在后台开启伪静态会跳出提示,告诉你的服务器不是Apache.不能开启。但是我们依然可以绕过这个限制,需要修改一个文件,该文件位于/core/admin/controller/system/目录下,我们需要修改ctl.tools.php这个文件。但是大家下载打开却发现很多乱码,根本不知道如何下手。其实这是经过zend加密过的源码,我们需要对其进行解密。例如Dezender.这个软件可以直接将经过zend加密过的源码还原成原来的文件。如下图所示。 

dezender

 

解密之后,我们需要对其进行修改。在文本编辑器查里打开文件

在第70行找到这段:

if ( !strpos( $content, “[*[”.md5( $code )。“]*]” ) )

将其替换成 

if ( false && !strpos( $content, "[*[".md5( $code )."]*]" ) )

 就是在!strpos前面添加一个false,然后我们将这个文件上传到服务器相应位置。然后我们就能在后台开启伪静态了。

注:此方法只适合ShopEx 4.84版本。

IIS 下配置Rewrite规则

完成以上步骤之后,我们需要开始配置了。首先.iis需要下载isapi_rewrite组件(注:这里必须下载isapi_rewrite 3 的版本.2.0的版本不支持RewriteCond语法。无法实现IIS下的ShopEx伪静态)。 下载地址是: http://www.helicontech.com/download-isapi_rewrite.htm 下载ISAPI_Rewrite Lite for Windows NT4/2000/XP/2003 (Freeware!)版本就好.Lite版本是免费版本。然后进行安装。安装就不多说了。

然后安装好之后,规则上与apache类似,直接复制到httpd.conf文件中即可。 

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600

RepeatLimit 32
# Collected By weijingtai.com for shopex

# 设置RewriteBase的值为你的商店目录地址
RewriteBase /
RewriteCond %{REQUEST_FILENAME}  \.(html|xml|json|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|cgi|shtml|shtm|phtm)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]

将这个文件放在根目录就好了.

Nginx的 Rewrite 规则
关于Nginx我之前在博客中已经介绍了很多次了.可以看一下Nginx简介.Nginx配置伪静态其实最简单了.在规则里添加判断是否存在文件或者目录(!-e),然后将它转发给根目录下的index.php进行处理就好了.这点跟WordPress的伪静态分配有点类似.

Nginx的 Rewrite 规则

location / {
if (!-e $request_filename) {
rewrite ^/(.+\.(html|xml|json|htm|php|jsp|asp|shtml))$ /index.php?$1 last;
}
}

如果ShopEx放在其他目录中,只需要将"/"换成相对目录就可以了...例如放在shop文件夹中,如下面这个配置.

location /shop/ {
if (!-e $request_filename) {
rewrite ^/shop/(.+\.(html|xml|json|htm|php|jsp|asp|shtml))$ /shop/index.php?$1 last;
}
}

 目前我还没有在lighttpd中配置ShopEx 的伪静态规则。如果lighttpd的fans的话。可以试试配置一下,这里提供一条线索。就是lighttpd的一个第三方模块:lighttpd-mod-magnet.大家多多动手。哈哈。

如果有其他疑问,可与我们取得联系。顺便做一下广告。国内Windows主机市场中。有两家Windows服务器商已经可以完美支持ShopEx伪静态,西部数码和八度数据。

原文链接:http://www.xmlchina.org/original-shopex-484-pseudo-static-method-as-well-as-covering-the-iis-server-nginx/