您的位置:首页 > 运维架构 > Nginx

ShopEx 4.84伪静态实现方法(涵盖IIS服务器以及Nginx)

2009-05-31 15:40 393 查看
商派的主打产品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的前缀

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



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

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


大家可以直接下载这个压缩包.里面有说明

[attachment=26932]

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



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

在第70行找到这段:

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

将其替换成

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

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

注:此方法只适合ShopEx 4.84版本,如果是其他版本的.可以用以下方式与我取得联系:

QQ:448033662

Gtalk/mail/Msn:webmaster@nicelover.cn

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.大家多多动手.哈哈.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: