今天收到hostmonster发的一封邮件,说我的虚拟空间文件数量已经超过50000个,会降低服务器的效率影响其他用户的使用,并且要求在14天之内清理不必要的文件。我用的是dedecms建站的,一个月之内生成了十几万的静态文件,于是就想到了以前看到的关于网址伪静态的技术,如果用到我的网站上就不会生成静态文件,在网上找了几个例子都没有成功,自己摸索了一天总算是搞定了,发给大家看看以后可以少走很多弯路。
dedecms 实现连接伪静态方法:
1,确定服务器支持rewrite
2,修改dedecms中 include/channelunit.func.php文件
3,修改htaccess文件
4,将文章和栏目修改为动态
5,将dede系统配置参数修改为使用伪静态
具体步骤如下:
1,联系你的服务器提供商询问是否支持rewrite,我用的hostmonster是支持的
2,找到dede中include/channelunit.func.php文件将
return $GLOBALS["cfg_plus_dir"].”/view-”.$aid.’-1.html’;
替换为
$typename = substr($typedir,10, strlen($typedir));
return “/”.$typename.”/view-”.$aid.’.html’;
还有
$reurl = $GLOBALS['cfg_phpurl'].”list-”.$typeid.”.html”;
替换为
$typename = substr($typedir,1, strlen($typedir));
$reurl = “/”.$typename.”/list-”.$typeid.’.html’;
3,修改htaccess文件
首先检查在你的网站根目录中是否有一个.htaccess文件
没有的话创建一个然后在里面添加如下内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3
RewriteRule view-([0-9]+)\.html$ /plus/view.php?arcID=$1
RewriteRule view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2
</IfModule>
4,将文章和栏目修改为动态
在dede管理页面系统–>SQL命令行工具
执行以下MySQL语句,将所有文档设置为“仅动态”:
update dede_archives set ismake=-1
执行以下MySQL语句,将所有栏目设置为“使用动态页”,也可以建立栏目时选择“使用动态页”:
update dede_arctype set isdefault=-1
5,在dede系统–>系统基本参数–>核心设置中,将是否使用伪静态选成是
好了,现在我们的dedecms就不用生成静态文件也能拥有静态链接了,虽然这个静态链接不是页面是真实链接但是对于搜索引擎来说它跟静态链接是完全没有区别的。