织梦移动端url伪静态

99ANYc3cd6
预计阅读时长 17 分钟
位置: 首页 织梦建站 正文
  1. 服务器配置:让服务器能够将用户请求的“漂亮”URL地址,正确地转发给织梦程序。
  2. 织梦程序配置:让织梦程序生成“漂亮”的URL,并能够正确解析服务器转发的请求。

下面我们以目前最主流的 Nginx 服务器为例进行讲解,因为Apache在现在的新环境中已经较少见,如果你的服务器是Apache,请参考文末的补充说明。

织梦移动端url伪静态
(图片来源网络,侵删)

第一步:服务器配置 (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$ 等 ...
}

配置解释:

织梦移动端url伪静态
(图片来源网络,侵删)
  1. location / { ... }:这是你网站PC端的常规伪静态规则,请保持你原有的规则不变。
  2. 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 参数。
  3. location ~* ^/m/static/ { ... }:这是一个可选但推荐的规则,如果你的移动端模板引用了 /m/static/ 目录下的资源,你需要用这个规则来确保它们能被正确访问。alias 指令用于将URL路径映射到服务器的真实文件路径。

配置完成后,必须重启Nginx服务使配置生效:

nginx -s reload

第二步:织梦程序配置

服务器配置好后,我们需要告诉织梦程序使用新的URL格式。

  1. 登录织梦后台:使用管理员账号登录你的织梦后台。

  2. 进入“系统” -> “系统基本参数”

    在左侧菜单栏找到并点击“系统基本参数”。

  3. 修改“核心设置”

    • 找到 “是否使用伪静态” 选项,将其选择为 “是”
    • 找到 “移动站开关” 选项,将其选择为 “是”
  4. 进入“栏目设置” -> “使用栏目目录”

    • 为了让URL更美观,建议开启此项。
    • 在左侧菜单栏找到“栏目设置”,然后点击“使用栏目目录”。
    • 将“使用目录名”设置为 “是”,这样,栏目页的URL就会是 /m/栏目目录/ 的形式。
  5. 更新“移动端域名”

    • 再次进入“系统基本参数”,这次点击“移动站点设置”。
    • “移动站点域名” 一栏,填写你的移动端访问地址,http://你的域名.com/m/
    • 非常重要:这里的域名必须以 /m/ 并且协议(http/https)和主域名要与PC端保持一致。
  6. 生成和更新

    • 更新首页:在后台首页,点击“更新主页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)是完全一样的,都需要在后台开启伪静态和移动站功能。

常见问题排查

  1. 404 Not Found

    • 原因:最常见的原因是Nginx/Apache配置有误,或者没有重启服务器。
    • 解决:仔细检查服务器配置文件中的正则表达式和路径,确保语法正确,然后重启Web服务器。
  2. 页面样式错乱/资源加载失败

    • 原因:移动端模板中的资源路径(如CSS、JS、图片)仍然是PC端的路径,或者Nginx的静态资源配置有误。
    • 解决:检查你的移动端模板文件(/templets/default/m/ 目录下),确保所有资源的路径都是以 /m/ 开头的,如果使用的是相对路径,通常没有问题,如果是绝对路径,请确保是 /m/... 的形式。
  3. URL仍然是动态的

    • 原因:织梦后台没有开启“是否使用伪静态”或“移动站开关”。
    • 解决:再次检查后台“系统基本参数”中的相关设置,并确保已经执行了“更新HTML”操作。

希望这份详细的教程能帮助你成功配置织梦移动端伪静态!

-- 展开阅读全文 --
头像
dede模板安装后为何进不了后台?
« 上一篇 01-22
C语言warning 266错误是什么原因?
下一篇 » 01-22

相关文章

取消
微信二维码
支付宝二维码

目录[+]