xiaocms伪静态规则

admin2周前 (10-27)技术教程41

XiaoCms企业建站版基于PHP+Mysql架构 是一款小巧、灵活、简单、易用的轻量级cms。能满足各种企业站 博客 等中小型站点。我之前有不少网站是用它建的。但最近发现了官方伪静态的一个问题,当栏目出现空格或减号的时候,伪静态失效了,打开栏目url出现404。经改进后的伪静态如下:

Apache

# 将 RewriteEngine 模式打开
RewriteEngine On
# 如果是在目录,请启用下面的规则、修改以下语句中的 /xiaocms 为您的网站目录地址
#RewriteBase /xiaocms
# Rewrite 系统规则请勿修改
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\s|%200-9a-z-_]+)/$ index.php?catdir=$1 [L,NC,NE,QSA]
RewriteRule ^([\s|%200-9a-z-_]+)/list_([0-9]+)\.html$ index.php?catdir=$1&page=$2 [L,NC,NE,QSA]
RewriteRule ^([\s|%200-9a-z-_]+)/([0-9]+)\.html$ index.php?id=$2&x=$1 [L,NC,NE,QSA]
RewriteRule ^([\s|%200-9a-z-_]+)/([0-9]+)_([0-9]+)\.html$ index.php?id=$2&page=$3&x=$1 [L,NC,NE,QSA]

Nginx

location / {
  if (!-e $request_filename){
    rewrite ^/([\s|%200-9a-z-A-Z-_]+)/$ /index.php?catdir=$1 last;
  }
  rewrite ^/([\s|%200-9a-z-A-Z-_]+)/list_([0-9]+)\.html$ /index.php?catdir=$1&page=$2 last;
  rewrite ^/([\s|%200-9a-z-A-Z-_]+)/([0-9]+)\.html$ /index.php?id=$2&x=$1 last;
  rewrite ^/([\s|%200-9a-z-A-Z-_]+)/([0-9]+)_([0-9]+)\.html$ /index.php?id=$2&page=$3&x=$1 last;
}

后记:基于目前php2shell漏洞,Xiaocms所支持的php版本已经不安全了。弃用了。除非作者更新到支持更安全的php8.2+

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。