- 服务器端配置:让服务器能够将形如
/member/123.html的请求正确地转发给member.php文件处理。 - DedeCMS 后台配置:告诉 DedeCMS 使用新的 URL 格式,并生成对应的链接。
第一步:服务器端配置 (以 Nginx 为例)
这是最关键的一步,如果服务器配置错误,伪静态将无法工作,这里以目前最常用的 Nginx 服务器为例,Apache 的配置会放在后面。

(图片来源网络,侵删)
找到 Nginx 配置文件
你的网站配置文件通常位于 /usr/local/nginx/conf/vhost/ 目录下,文件名一般是你的域名,yourdomain.com.conf,你需要用 SSH 或 FTP 连接到你的服务器来编辑这个文件。
在 server { ... } 块内添加伪静态规则
在网站的 server 配置块中,添加以下 rewrite 规则,请确保将其添加在 location / { ... } 之前或其中。
server {
# ... 其他配置,如 listen, server_name, root 等 ...
# 会员中心伪静态规则
location ~ ^/member/ {
rewrite ^/member/([0-9]+)\.html$ /member/index.php?uid=$1 last;
rewrite ^/member/([a-zA-Z0-9_-]+)\.html$ /member/index.php?uid=$1 last;
}
# 其他 location 配置...
location / {
# ... 其他规则 ...
}
# ... 其他配置 ...
}
规则解释:
location ~ ^/member/ { ... }:匹配所有以/member/开头的 URL。rewrite ^/member/([0-9]+)\.html$ /member/index.php?uid=$1 last;:^/member/([0-9]+)\.html$:匹配形如/member/123.html的 URL,([0-9]+)是一个捕获组,用来提取会员的 ID。/member/index.php?uid=$1:将匹配到的 URL 重写为/member/index.php?uid=123。$1代表第一个捕获组的内容(即会员 ID)。last:表示匹配到这个规则后,停止继续匹配rewrite规则,并将处理权交给location /member/index.php。
rewrite ^/member/([a-zA-Z0-9_-]+)\.html$ /member/index.php?uid=$1 last;:- 这个规则是可选的,如果你的会员 ID 是用户名(字母、数字、下划线、短横线)而不是纯数字,就需要这个规则,它用于匹配形如
/member/username.html的 URL。
- 这个规则是可选的,如果你的会员 ID 是用户名(字母、数字、下划线、短横线)而不是纯数字,就需要这个规则,它用于匹配形如
检查并重载 Nginx 配置
保存配置文件后,执行以下命令检查语法是否正确,然后重载 Nginx 使配置生效。

(图片来源网络,侵删)
# 检查语法 nginx -t # 如果显示 syntax is ok 和 test is successful,则重载配置 nginx -s reload
第二步:DedeCMS 后台配置
服务器配置好后,你需要登录 DedeCMS 后台,开启并设置伪静态。
开启伪静态功能
- 登录 DedeCMS 后台。
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “是否使用伪静态” 选项,将其设置为 “是”。
- 点击“保存”按钮。
设置会员中心伪静态规则
- 在后台左侧菜单中,找到 “系统” -> “伪静态管理” -> “会员伪静态规则”。
- 你会看到一个文本框,里面需要填写规则。将下面提供的规则完整复制并粘贴进去,覆盖掉原有的内容。
#会员空间
member/{dede:field.userid/}.html
member/index.php?uid={dede:field.userid/}
#会员主页
member/{dede:field.username/}.html
member/index.php?uid={dede:field.username/}
规则解释:
member/{dede:field.userid/}.html:这是前台模板中需要使用的 URL 格式,在会员列表页,链接会写成<a href="/member/{dede:field.userid/}.html">。member/index.php?uid={dede:field.userid/}:这是 DedeCMS 内部实际调用的动态文件,当系统生成链接时,会把{dede:field.userid/}替换成真实的会员 ID 或用户名。
填写好规则后,点击“更新”按钮。
第三步:修改前台模板 (可选但推荐)
为了确保所有指向会员中心的链接都使用新的伪静态格式,你可能需要修改几个关键的模板文件。
-
修改会员列表页模板
- 路径:
/templets/default/member/目录下的list_fulllist.htm或相关列表模板。 - 找到生成会员链接的代码,通常是:
<a href='{dede:field.spaceurl/}' target='_blank'>{dede:field.username/}</a> - 将其修改为明确指向伪静态格式:
<a href='/member/{dede:field.userid/}.html' target='_blank'>{dede:field.username/}</a>注意:这里我们使用了
{dede:field.userid/},因为它在会员列表中是唯一且稳定的。
- 路径:
-
修改评论等模块中的会员链接
- 在评论、留言等模块中,也可能有指向会员空间的链接。
- 找到相应的模板文件(如
/templets/default/feedback.htm),将类似<a href='{dede:global.cfg_memberurl/}/?uid={dede:field.userid}'>的代码修改为<a href='/member/{dede:field.userid/}.html'>。
第四步:更新缓存和生成
完成以上所有步骤后,为了确保设置生效,建议:
- 在后台执行 “更新系统缓存”。
- 如果你的网站已经生成过 HTML,可以执行 “更新首页” 和 “更新文档HTML”,让新生成的页面链接都使用新格式。
附:Apache 服务器配置
如果你的服务器是 Apache,配置会简单很多,通常只需要一个 .htaccess 文件。
- 在 DedeCMS 安装根目录下,找到
httpd.ini.txt文件(如果没有,可以创建一个.htaccess文件)。 - 确保文件中包含以下规则:
# 会员中心伪静态规则 RewriteRule ^member/([0-9]+)\.html$ /member/index.php?uid=$1 [L] RewriteRule ^member/([a-zA-Z0-9_-]+)\.html$ /member/index.php?uid=$1 [L]
- 将
httpd.ini.txt重命名为.htaccess。 - 确保你的 Apache 开启了
mod_rewrite模块。
常见问题排查
- 404 Not Found:
- 原因1:Nginx/Apache 伪静态规则配置错误或未生效,请检查服务器配置文件是否正确保存并重载了服务。
- 原因2:后台的“会员伪静态规则”为空或格式错误,请确保规则已正确填写并更新。
- 500 Internal Server Error:
- 原因:Nginx 配置语法错误,请使用
nginx -t命令检查语法。
- 原因:Nginx 配置语法错误,请使用
- 页面打开,但 URL 没有变化:
- 原因:模板文件中的链接还是旧的动态格式,请检查并修改相关模板文件。
按照以上步骤一步步操作,你的 DedeCMS 会员中心伪静态应该就能成功设置了。
