您现在的位置: 365建站网 > 365学习 > IIS服务器以及Nginx下 ShopEx4.84伪静态

IIS服务器以及Nginx下 ShopEx4.84伪静态

文章来源:365jz.com     点击数:331    更新时间:2009-04-22 00:19   参与评论
主机网全新上线,买空间、服务器就上主机网,安全有保障!

商派的主打产品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/

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (331人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------