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

截图演示.png

  1、设置栏目属性——生成选项,设置如下:

  (1)栏目页模式:静态页面

  (2)内容页模式:静态页面

  (3)是否生成:不生成栏目页、不生成内容页

  (4)内容页目录存放形式:不设置目录

  注意事项:

  (1)内容页文件命名形式 不能是目录,但是支持信息文件名的修改,URL也能很好看

  (2)栏目目录和信息文件名是英文或数字(栏目目录建议英文或英文开头,“-_”上下划线留着给别的东西用吧避免冲突如其它伪静态,避免冲突)

  2、在/e/action/下增加如下php文件:

  列表list.php代码:附件中

  内容show.php代码:附件中

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

  (1)Apache下的伪静态规则

  #栏目  

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(d/|e/|html/|images/|s/|search/|skin/|t/)
RewriteRule ^([0-9a-zA-Z/]+)/(|index\.html|index_[0-9]+\.html)$ /e/action/list\.php\?classid=$1&page=$2

  #内容  

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(d/|e/|html/|images/|s/|search/|skin/|t/)
RewriteRule ^([0-9a-zA-Z/]+)/([0-9a-zA-Z]+)([_0-9]*)\.html$ /e/action/show\.php\?classid=$1&id=$2&page=$3

  (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 ($rule_0 = "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;