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.大家多多动手.哈哈.
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.大家多多动手.哈哈.
相关文章推荐
- windows server,nginx安装,配置,运行nodeJS后端的web项目的实现,以及错误分析及解决方法
- nginx、Apache、IIS服务器解决 413 Request Entity Too Large问题方法汇总
- nginx、Apache、IIS服务器解决 413 Request Entity Too Large问题方法汇总
- Nginx与IIS服务器搭建集群的方法
- 阿里云服务器以及CDN支持IPV6的方法+如何为Nginx添加ipv6模块
- 如何在WINDOWS XP下安装IIS服务器以及实现ASP网页访问
- 如何在一台服务器上实现多个web站点(IIS方法)
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(二)
- 静态页面、动态页面和伪静态页面的区别以及实现方法
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(三)
- Nginx服务器部署SSL证书实现网站HTTPS加密方法
- Nginx实现不同域名输出不同的服务器头信息方法
- 使用Nginx作缓存服务器以及删除其缓存文件的方法
- NGINX配置rtmp服务器实现rtmp以及hls直播
- 使用Nginx实现服务器中多容器共存的方法
- 架构之路:nginx与IIS服务器搭建集群实现负载均衡(一)
- NGINX配置rtmp服务器实现rtmp以及hls直播
- 反向代理概念以及apache,nginx配置反向代理实现负载均衡方法
- windows 2008 32位IIS 服务器转到64位后的各种错误,以及解决方法
- Nginx与IIS服务器搭建集群的方法