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

建站经验
推广经验 利用QQ推广网站的方法
google 恶意软件网站 警告后 怎么办
站长浅谈 运营网站切勿盲目跟风
远离垃圾站 做一个有用的站 让人们需要你
站长想把网站做好需要专心
让百度蜘蛛认为你的网站是一个好网站
企业网站 建设目标分析
问答推广的实施步骤与问答推广方法和技巧
SEO B2B行业网站优化经验
搜索引擎算法调整和被搜索引擎惩罚的解决方法
选择不知名网站源码来建站选择技巧
digg 创始人经验分享 发展网站用户的9个方法
智能查询域名的10个国外网站
成功网站的法则 简单的直击人最基本需求
网站 邀请机制的使用说明
成功网站=充实的内容+勤奋的站长+运气
网站内容的主动组织和展示技巧
百度K站和降权原因大收集 看看你占了哪一条
网络媒体 让资讯与服务融为一体
网站运营 SNS社区产品设计思想

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 186 ::
收藏到网摘: 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/