帝国cms拼音化伪静态方法

此种方法,可以自定义url地址,例如可以用拼音做目录,而不是帝国默认用id做目录。并且不用更改系统文件,直接上传插件,设置栏目属性,之后添加伪静态规则就可以执行了。具体方法如下:

1、设置栏目属性——生成选项,设置如下:
(1)栏目页模式:静态页面
(2)内容页模式:静态页面
(3)是否生成:不生成栏目页、不生成内容页
(4)内容页目录存放形式:不设置目录

注意事项:
(1)内容页文件命名形式 不能是目录,但是支持信息文件名的修改,URL也能很好看
(2)栏目目录和信息文件名是英文或数字(栏目目录建议英文或英文开头,“-_”上下划线留着给别的东西用吧避免冲突如其它伪静态,避免冲突)

2、在/e/action/下增加如下php文件:
列表list.php代码:附件中
内容show.php代码:附件中

3、在网站空间添加伪静态规则

(1)Apache下的伪静态规则

RewriteEngine On
Rewritebase /
#信息内容页
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^showinfo-([0-9]+)-([0-9]+)-([0-9]+).html$ /e/action/ShowInfo.php?classid=$1&id=$2&page=$3 [NC,L]
#信息列表
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^listinfo-([0-9]+)-([0-9]+).html$ /e/action/ListInfo/index.php?classid=$1&page=$2 [NC,L]
#标题分类列表页
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^infotype-([0-9]+)-([0-9]+).html$ /e/action/InfoType/index.php?ttid=$1&page=$2 [NC,L]
#TAGS信息列表页
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^tags-(.+?)-([0-9]+).html$ /e/tags/index.php?tagname=$1&page=$2 [NC,L]
#评论列表页
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^comment-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+).html$  /e/pl/index.php?doaction=$1&classid=$2&id=$3&page=$4&myorder=$5&tempid=$6 [NC,L]

#栏目
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(d/|e/|html/|images/|s/|search/|skin/|t/|ad)
RewriteRule ^([0-9a-zA-Z-/]+)/(|index.html|index_[0-9]+.html)$ /e/action/list.php?classid=$1&page=$2 [NC,L]
#内容
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(d/|e/|html/|images/|s/|search/|skin/|t/|ad)
RewriteRule ^([0-9a-zA-Z-/]+)/([0-9a-zA-Z]+)([_0-9]*).html$ /e/action/show.php?classid=$1&id=$2&page=$3 [NC,L]

(2)在Nginx下的伪静态规则

if ($args ~ "^(.*)$"){
set $rule_0 1$rule_0;
}
if (!-f $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 !~ "^(d/|e/|html/|images/|s/|search/|skin/|t/)"){
set $rule_0 3$rule_0;
}
if ($rule_0 = "321"){
rewrite ^/([0-9a-zA-Z/]+)/(|index.html|index_[0-9]+.html)$ /e/action/list.php?classid=$1&page=$2;
}
if ($args ~ "^(.*)$"){
set $rule_1 1$rule_1;
}
if (!-f $request_filename){
set $rule_1 2$rule_1;
}
if ($rule_1 !~ "^(d/|e/|html/|images/|s/|search/|skin/|t/)"){
set $rule_1 3$rule_1;
}
if ($rule_1 = "321"){
rewrite ^/([0-9a-zA-Z/]+)/([0-9a-zA-Z]+)([_0-9]*).html$ /e/action/show.php?classid=$1&id=$2&page=$3;
}

上面这个规则是可以让前台的栏目、内容页都正常显示,但会导致其他的动态页面出问题。例如会员系统是动态页面,登录时就会提示链接不存在。

(3)在Nginx下给各栏目单独写伪静态规则
这种方法的好处是,直接给某个栏目写规则,不会影响其他的链接,例如不会影响会员系统等。但这种方法缺点是,麻烦,需要每个栏目都写规则,并且如果只有一级栏目,规则比较好写,如果有二级栏目、三级栏目就会不好写,内容页链接就可能不对。
下面演示一个例子:

#tag标签
rewrite ^/tags-(.*)-(.*)$ /e/tags/index.php?tagid=$1&page=$2;

#栏目页
rewrite ^/news/$ /e/action/list.php?classid=34&url=news;

#栏目页2
rewrite ^/news/index.html$ /e/action/list.php?classid=34&url=news;

#列表页分页
rewrite ^/news/index_([0-9]+).html$ /e/action/list.php?classid=34&url=news&page=$1;

#内容页
rewrite ^/news/([0-9]+).html$ /e/action/show.php?classid=34&id=$1;

//补充代码:上面伪静态会导致翻页内容相同问题【内容和翻页进行伪静态写法如下】
rewrite ^([^.]*)/tags-(.+?)-([0-9]+).html$ $1/e/tags/index.php?tagname=$2&page=$3 last;
rewrite ^/([0-9a-zA-Z/]+)/(index_[0-9]+.html)$ /e/action/list.php?classid=$1&page=$2;
rewrite ^/([0-9a-zA-Z/]+)/([0-9a-zA-Z]+)([_0-9]*).html$ /e/action/show.php?classid=$1&id=$2&page=$3;

栏目首页必须单独自己对应写
rewrite ^/news/index.html$ /e/action/list.php?classid=34&url=news;
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容