dede子目录域名如何正确配置与访问?

99ANYc3cd6
预计阅读时长 16 分钟
位置: 首页 DEDE建站 正文

核心概念

  1. 子目录: 指的是你网站根目录下的一个文件夹,你的主站是 www.yourdomain.comblog 就是一个子目录,完整路径是 www.yourdomain.com/blog/
  2. 子域名: 指的是主域名下的一个二级域名,与 blog 子目录对应的子域名可以是 blog.yourdomain.com
  3. 绑定: 指的是通过服务器配置,让访问 blog.yourdomain.com 的请求,实际上指向到 www.yourdomain.com/blog/ 这个文件夹下的内容。

操作步骤详解

整个过程分为三个主要部分:

dede 子目录 域名
(图片来源网络,侵删)
  1. 服务器端配置:让服务器知道 blog.yourdomain.com 指向哪个文件夹。
  2. DedeCMS 后台配置:告诉 DedeCMS 系统,这个子域名是它的一部分。
  3. 域名解析:让互联网上的 DNS 服务器知道 blog.yourdomain.com 的 IP 地址是什么。

第一步:服务器端配置(关键步骤)

这是最核心的一步,你需要登录你的服务器(虚拟主机或云服务器)进行配置,这里我们以最常用的 NginxApache 为例。


使用 Nginx 服务器

Nginx 的配置非常灵活,推荐使用 server 块的方式。

  1. 找到你的 Nginx 配置文件,通常位于 /etc/nginx/nginx.conf 或在 /etc/nginx/sites-available/ 目录下的某个文件中(如 yourdomain.com)。

  2. 编辑配置文件,你需要在 http 块内添加一个新的 server 块,专门用来处理子域名的请求。

    dede 子目录 域名
    (图片来源网络,侵删)
    # 假设你的网站根目录是 /var/www/www.yourdomain.com
    # 你的子目录 blog 位于 /var/www/www.yourdomain.com/blog
    # 主站配置 (www.yourdomain.com)
    server {
        listen 80;
        server_name www.yourdomain.com yourdomain.com; # 可以包含主域名和带www的域名
        root /var/www/www.yourdomain.com;
        index index.php index.html index.htm;
        # ... 其他主站配置 ...
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    # 子域名配置 (blog.yourdomain.com)
    server {
        listen 80;
        server_name blog.yourdomain.com; # 绑定子域名
        # 关键:将根目录指向子目录的物理路径
        root /var/www/www.yourdomain.com/blog; 
        index index.php index.html index.htm;
        # ... 其他配置可以和主站保持一致 ...
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
        # 如果子目录下也有其他规则,也需要在这里配置
        # 如果 blog 子目录也使用了 DedeCMS 的伪静态规则
        location / {
            # blog 子目录有自己的伪静态规则,include
            # include /etc/nginx/conf.d/yourdomain.com.blog.conf; 
            try_files $uri $uri/ /index.php?$query_string;
        }
    }
  3. 保存配置文件,然后执行命令重新加载 Nginx 配置:

    sudo nginx -t  # 测试配置文件语法是否正确
    sudo systemctl reload nginx # 重新加载配置

使用 Apache 服务器

Apache 的配置通常通过 .htaccess 文件实现,非常方便,尤其适合虚拟主机用户。

  1. 进入你的网站根目录,也就是 www.yourdomain.com 对应的文件夹。

  2. 编辑或创建 .htaccess 文件,在文件末尾添加以下内容:

    dede 子目录 域名
    (图片来源网络,侵删)
    # 开启重写引擎
    RewriteEngine On
    # 定义你的主域名
    RewriteBase /
    # 子域名 blog.yourdomain.com 的重写规则
    # 当访问 blog.yourdomain.com 时,将请求重写到 /blog/ 目录下
    RewriteCond %{HTTP_HOST} ^blog\.yourdomain\.com [NC]
    RewriteRule ^(.*)$ /blog/$1 [L]

    代码解释:

    • RewriteEngine On: 开启 URL 重写功能。
    • RewriteCond %{HTTP_HOST} ...: 这是一个条件,检查请求的域名是否是 blog.yourdomain.com[NC] 表示不区分大小写)。
    • RewriteRule ^(.*)$ /blog/$1 [L]: 如果条件满足,就将所有请求(^(.*)$ 匹配任何路径)重写到 /blog/ 目录下,并保留原始路径($1)。[L] 表示这是最后一条规则,匹配后不再执行后续规则。
  3. 保存 .htaccess 文件,Apache 通常会自动检测并应用配置更改,无需重启。


第二步:DedeCMS 后台配置

服务器配置完成后,你需要告诉 DedeCMS 这个子域名是它的一部分,这样才能正确处理登录、cookie 等问题。

  1. 登录 DedeCMS 后台www.yourdomain.com/dede/

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

  3. 找到“站点设置”选项卡

  4. 修改以下参数

    • 网站主页链接:确保这里填写的是你的主域名,http://www.yourdomain.com/
    • 站点根网址:填写你的主域名,http://www.yourdomain.com/
    • 附件目录相对路径:如果附件在子目录,可能需要调整,但通常保持 /uploads 即可。
  5. 最关键的一步:进入“核心设置”

  6. 在“站点域名”这一项中,用英文逗号 隔开,添加你的主域名和子域名

    www.yourdomain.com, blog.yourdomain.com

    这样做的目的是,DedeCMS 在生成链接、验证用户登录状态时,会认为这两个域名都是同一个站点,从而避免 cookie 域名不匹配导致的问题。

  7. 保存设置


第三步:域名解析

最后一步,在你的域名注册商(如阿里云、腾讯云、GoDaddy 等)的控制面板中,添加一条 DNS 记录。

  1. 登录你的域名管理后台。

  2. 找到 DNS 解析管理。

  3. 添加一条 A 记录CNAME 记录

    • 推荐使用 A 记录

      • 主机记录: blog (表示 blog.yourdomain.com)
      • 记录类型: A
      • 记录值: 你服务器的 IP 地址(45.67.89
    • 也可以使用 CNAME 记录

      • 主机记录: blog
      • 记录类型: CNAME
      • 记录值: www.yourdomain.com (指向你的主域名)
  4. 保存 DNS 记录,DNS 生效通常需要几分钟到几小时不等。


总结与注意事项

  1. 顺序:建议先完成 域名解析,然后是 服务器配置,最后是 DedeCMS 后台配置,因为 DNS 生效需要时间,提前解析可以确保后续步骤测试时域名已经可用。
  2. 虚拟主机用户:如果你使用的是虚拟主机,可能无法直接修改 Nginx 或 Apache 的主配置文件,这时,.htaccess 方案是你的最佳选择,很多虚拟主机面板也提供了“子域名绑定”功能,你只需要在面板里将 blog.yourdomain.com 绑定到 blog 文件夹即可,这本质上就是在后台帮你生成了类似上面的 .htaccess 规则。
  3. SSL 证书 (HTTPS):如果你的主站启用了 HTTPS,子域名最好也配置一个 SSL 证书,可以使用 Let's Encrypt 免费证书,并在 Nginx/Apache 配置中为 blog.yourdomain.com 单独开启 443 端口和 ssl 配置。
  4. 测试:完成所有步骤后,清除浏览器缓存,分别访问 www.yourdomain.comblog.yourdomain.com,确保它们都正常工作,并且登录状态在两个域名之间是互通的(因为你在后台设置了站点域名)。
  5. 路径问题:确保子目录(如 /blog)下的文件结构和权限与主站一致,特别是 /data/dede 等核心目录,子目录通常需要指向主站的这些目录,如果你的子目录是一个完全独立的站点,则配置方式会有所不同。
-- 展开阅读全文 --
头像
dede列表页函数如何生成?参数怎么用?
« 上一篇 今天
dede列表页如何调用描述?
下一篇 » 今天

相关文章

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

目录[+]