帝国cms在nginx下实现伪静态需配置重写规则,首先设置基础规则:将index.html、list-.html、show-.html等url重写到index.php解析;其次添加自定义规则支持专题页、用户中心和投票功能;然后排除静态资源文件(如css、js、图片)避免被重写;最后可限制后台访问ip以增强安全。所有规则需写入站点配置文件,修改后测试语法并重载nginx,同时确保后台开启伪静态并匹配url格式,子目录安装时调整路径前缀即可生效。

帝国CMS在Nginx环境下实现伪静态,需要正确配置Nginx的重写规则(rewrite),让URL看起来更友好,同时确保系统能正常解析动态请求。以下是常见的帝国CMS Nginx伪静态规则写法。
1. 基础伪静态规则
适用于大多数帝国CMS站点,将常见栏目、内容页、列表页等URL进行重写:
location / {
rewrite ^/index\.html$ /index.php last;
rewrite ^/list-([0-9]+)-([0-9]+)\.html$ /index.php?classid=$1&page=$2 last;
rewrite ^/list-([0-9]+)\.html$ /index.php?classid=$1 last;
rewrite ^/show-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /index.php?classid=$1&id=$2&page=$3 last;
rewrite ^/show-([0-9]+)-([0-9]+)\.html$ /index.php?classid=$1&id=$2 last;
rewrite ^/tags/([^/]*)\.html$ /e/tags/index.php?tagname=$1 last;
rewrite ^/search/(.*)$ /e/search/index.php?$1 last;
}
2. 自定义字段或特殊页面规则
如果你有自定义的栏目链接、专题页或其他扩展功能,可添加如下规则:
# 专题页
rewrite ^/zt/([0-9]+)\.html$ /special/index.php?id=$1 last;
<h1>用户中心</h1><p>rewrite ^/user/(.*)$ /e/member/$1 last;</p><h1>投票功能</h1><p>rewrite ^/vote/([0-9]+).html$ /e/vote/index.php?voteid= last;</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/2187" title="蛙蛙写作——超级AI智能写作助手"><img
src="https://img.php.cn/upload/ai_manual/001/246/273/68b6c6e349825299.png" alt="蛙蛙写作——超级AI智能写作助手" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/2187" title="蛙蛙写作——超级AI智能写作助手">蛙蛙写作——超级AI智能写作助手</a>
<p>蛙蛙写作辅助AI写文,帮助获取创意灵感,提供拆书、小说转剧本、视频生成等功能,是一款功能全面的AI智能写作工具。</p>
</div>
<a href="/ai/2187" title="蛙蛙写作——超级AI智能写作助手" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>
3. 静态资源排除
避免静态文件被重写规则干扰,建议加上对图片、CSS、JS等文件的判断:
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
expires 30d;
access_log off;
add_header Cache-Control "public";
break;
}
4. EmpireCMS后台访问保护
为安全起见,可限制后台访问路径:
location /e/admin/ {
allow 192.168.1.1; # 允许IP
deny all;
}
注意事项:
- 以上规则需写入你的站点配置文件中,通常位于
/etc/nginx/sites-available/your-site - 修改后运行
nginx -t检查语法,再 reload:nginx -s reload - 帝国后台必须开启“伪静态”选项,并设置对应的URL格式(如 show-{$classid}-{$id}.html)
- 如果使用子目录安装,需调整路径前缀,例如
rewrite ^/cms/show-(\d+)-(\d+)\.html
基本上就这些,不复杂但容易忽略细节。只要前后端设置一致,Nginx规则就能顺利生效。









