- 服务器配置:让服务器能够将用户请求的“漂亮”URL地址,正确地转发给织梦程序。
- 织梦程序配置:让织梦程序生成“漂亮”的URL,并能够正确解析服务器转发的请求。
下面我们以目前最主流的 Nginx 服务器为例进行讲解,因为Apache在现在的新环境中已经较少见,如果你的服务器是Apache,请参考文末的补充说明。

(图片来源网络,侵删)
第一步:服务器配置 (Nginx)
这是最关键的一步,你需要修改Nginx的配置文件,通常位于 /usr/local/nginx/conf/nginx.conf 或站点配置文件 /usr/local/nginx/conf/vhost/你的域名.conf。
核心思路:
- 重写规则:将形如
/m/开头的移动端URL,重写为织梦能识别的带mobile参数的动态URL。 - 处理静态资源:确保
/m/目录下的图片、CSS、JS等文件能被正常访问。
请在你的Nginx配置文件的 server 块中,添加或修改如下规则:
server {
listen 80;
server_name 你的域名.com www.你的域名.com;
# ... 其他配置如 root, index 等 ...
# ======================
# 织梦移动端伪静态规则
# ======================
location / {
# 这是你网站PC端的根目录伪静态规则,保持不变
# /article/123.html -> /plus/view.php?aid=123
# 这部分规则根据你的PC端伪静态方案而定
rewrite "^/list/([0-9]+)/.html$" /plus/list.php?tid=$1 last;
rewrite "^/view/([0-9]+)-([0-9]+).html$" /plus/view.php?arcID=$1&pageno=$2 last;
# ... 其他PC端规则 ...
}
# 移动端伪静态规则的核心
# 将所有 /m/ 开头的请求,重写为织梦的移动端入口,并带上mobile参数
location /m/ {
# 将 /m/ 开头的所有请求,转发到 / 目录下处理
# 并设置一个名为 'is_mobile' 的参数为 '1',这是织梦识别移动端的关键
rewrite ^/m/(.*)$ /$1?mobile=1 last;
}
# 确保移动端目录下的静态资源(图片、CSS、JS)能被正确访问
# 如果你的移动端模板资源放在 /m/static/ 目录下
location ~* ^/m/static/ {
alias /你的网站根目录/m/static/; # 请务必修改为你的实际路径
expires 30d;
access_log off;
}
# ... 其他配置如 location ~ .php$ 等 ...
}
配置解释:

(图片来源网络,侵删)
location / { ... }:这是你网站PC端的常规伪静态规则,请保持你原有的规则不变。location /m/ { ... }:这是移动端的核心规则。rewrite ^/m/(.*)$ /$1?mobile=1 last;:这行代码的意思是,所有以/m/开头的请求(/m/article/123.html),都会被匹配到。^/m/(.*)$是一个正则表达式,匹配/m/后面的所有内容(/article/123.html)。/$1?mobile=1将匹配到的内容($1)拼接到根路径下,并添加一个mobile=1的查询参数。/m/article/123.html最终会变成/article/123.html?mobile=1。last标志表示停止处理当前的rewrite规则集,并使用新的URI重新开始搜索匹配的location块,此时Nginx会再次匹配location /块下的规则,将article/123.html转换为plus/view.php?aid=123,并带上mobile=1参数。
location ~* ^/m/static/ { ... }:这是一个可选但推荐的规则,如果你的移动端模板引用了/m/static/目录下的资源,你需要用这个规则来确保它们能被正确访问。alias指令用于将URL路径映射到服务器的真实文件路径。
配置完成后,必须重启Nginx服务使配置生效:
nginx -s reload
第二步:织梦程序配置
服务器配置好后,我们需要告诉织梦程序使用新的URL格式。
-
登录织梦后台:使用管理员账号登录你的织梦后台。
-
进入“系统” -> “系统基本参数”:
在左侧菜单栏找到并点击“系统基本参数”。
-
修改“核心设置”:
- 找到 “是否使用伪静态” 选项,将其选择为 “是”。
- 找到 “移动站开关” 选项,将其选择为 “是”。
-
进入“栏目设置” -> “使用栏目目录”:
- 为了让URL更美观,建议开启此项。
- 在左侧菜单栏找到“栏目设置”,然后点击“使用栏目目录”。
- 将“使用目录名”设置为 “是”,这样,栏目页的URL就会是
/m/栏目目录/的形式。
-
更新“移动端域名”:
- 再次进入“系统基本参数”,这次点击“移动站点设置”。
- 在 “移动站点域名” 一栏,填写你的移动端访问地址,
http://你的域名.com/m/。 - 非常重要:这里的域名必须以
/m/并且协议(http/https)和主域名要与PC端保持一致。
-
生成和更新:
- 更新首页:在后台首页,点击“更新主页HTML”,生成移动端的首页。
- 更新栏目:进入“栏目管理”,对你所有的栏目进行更新,生成移动端的栏目页。
- 更新文档:进入“所有档案”,选择你需要更新的文档,点击“生成HTML”,生成移动端的文章页。
完成以上步骤后,你的织梦移动端伪静态就配置成功了,现在你可以访问 http://你的域名.com/m/,应该能看到移动端首页,并且点击文章和栏目时,URL都会是类似 /m/article/123.html 这样的伪静态地址。
补充说明:Apache服务器配置
如果你的服务器是Apache,配置会更简单一些,主要是在 .htaccess 文件中添加规则。
在你的网站根目录(与 index.php 同级)下的 .htaccess 文件中,添加以下规则:
# 如果文件或目录存在,则直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# ======================
# 织梦移动端伪静态规则
# ======================
# 如果请求以 /m/ 开头
RewriteCond %{REQUEST_URI} ^/m/
# 将其重写为 / 目录下的请求,并添加 mobile=1 参数
RewriteRule ^m/(.*)$ $1?mobile=1 [L,QSA]
# ======================
# 织梦PC端伪静态规则 (保持你原有的规则)
# ======================
RewriteRule ^list-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&PageNo=$2
RewriteRule ^list-([0-9]+)\.html$ /plus/list.php?tid=$1
RewriteRule ^view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?arcID=$1&PageNo=$2
RewriteRule ^view-([0-9]+)\.html$ /plus/view.php?arcID=$1
Apache配置解释:
RewriteCond %{REQUEST_URI} ^/m/:这是一个条件,只有当请求的URI(统一资源标识符)以/m/开头时,才会执行下面的重写规则。RewriteRule ^m/(.*)$ $1?mobile=1 [L,QSA]:^m/(.*)$匹配/m/后面的所有内容。$1?mobile=1将匹配到的内容拼接到根路径,并添加mobile=1参数。[L]表示Last,如果这条规则匹配成功,则停止后续的Rewrite规则。[QSA]表示Query String Append,保留原始请求中的查询字符串(如果有的话)。
织梦程序端的配置(Nginx和Apache)是完全一样的,都需要在后台开启伪静态和移动站功能。
常见问题排查
-
404 Not Found:
- 原因:最常见的原因是Nginx/Apache配置有误,或者没有重启服务器。
- 解决:仔细检查服务器配置文件中的正则表达式和路径,确保语法正确,然后重启Web服务器。
-
页面样式错乱/资源加载失败:
- 原因:移动端模板中的资源路径(如CSS、JS、图片)仍然是PC端的路径,或者Nginx的静态资源配置有误。
- 解决:检查你的移动端模板文件(
/templets/default/m/目录下),确保所有资源的路径都是以/m/开头的,如果使用的是相对路径,通常没有问题,如果是绝对路径,请确保是/m/...的形式。
-
URL仍然是动态的:
- 原因:织梦后台没有开启“是否使用伪静态”或“移动站开关”。
- 解决:再次检查后台“系统基本参数”中的相关设置,并确保已经执行了“更新HTML”操作。
希望这份详细的教程能帮助你成功配置织梦移动端伪静态!
