通过服务器的URL重写规则,将所有访问二级域名的请求,都指向到主站点的tag.php文件,并传递相应的标签名参数。

(图片来源网络,侵删)
操作前提
- 拥有一个支持虚拟主机绑定的服务器/空间:你的服务器必须允许你为同一个站点绑定多个域名(包括二级域名)。
- 二级域名已正确解析:在你的DNS管理后台,将你的二级域名(如
tags.yourdomain.com)解析到你服务器的IP地址。 - 服务器支持URL重写(伪静态):通常是Apache服务器(需要开启
mod_rewrite模块)或Nginx服务器,本文将分别提供两者的配置示例。
操作步骤
第一步:在织梦后台开启并配置Tag功能
-
开启Tag功能:
- 登录你的织梦后台。
- 进入【系统】-> 【系统基本参数】-> 【核心设置】。
- 找到是否启用
tag功能的选项,设置为“是”。 - 保存设置。
-
设置Tag目录:
- 在【核心设置】页面,找到
tag目录名称选项。 - 默认值是
tag。强烈建议保持默认值,因为后续的伪静态规则是基于这个目录的,如果你修改了,后面的规则也需要相应修改。 - 保存设置。
- 在【核心设置】页面,找到
-
更新缓存:
进入【系统】-> 【一键更新网站】-> 【更新缓存】,点击“开始更新”,确保新设置生效。
(图片来源网络,侵删)
第二步:在服务器上绑定二级域名
这一步的操作因你使用的服务器面板(如cPanel、宝塔面板、DirectAdmin等)或服务器类型(Apache/Nginx)而异。
-
以宝塔面板为例:
- 登录宝塔面板。
- 进入【网站】列表。
- 找到你的主站点,点击【设置】。
- 在【域名管理】标签页,点击【添加域名】。
- 输入你的二级域名(
tags.yourdomain.com)。 - 确保【网站目录】指向的是你主站点的根目录(和主域名是同一个目录)。
- 点击【确定】。
-
以cPanel面板为例:
- 登录cPanel。
- 在“Domains”区域,点击“Subdomains”。
- 在输入框中填写子域名名称(如
tags),然后在“Domain”下拉框选择你的主域名。 - Document Root会自动设置,通常保持默认即可(它会创建一个子目录,但我们不需要,所以下一步要改)。
- 点击【创建】。
- 创建后,你需要通过FTP或文件管理器,将这个新创建的子目录(如
public_html/tags)里的所有文件和文件夹删除,确保它的根目录指向主站点的根目录 (public_html),或者,更简单的方法是在绑定时就选择指向主目录。
关键点:二级域名必须和主域名指向同一个网站根目录。

(图片来源网络,侵删)
第三步:配置伪静态规则(最关键的一步)
这是实现功能的核心,我们需要告诉服务器,所有对 tags.yourdomain.com 的请求,都应该如何处理。
如果你的服务器是 Apache
- 通过FTP或文件管理器,进入你网站的根目录。
- 找到并编辑
.htaccess文件,如果找不到,就新建一个。 - 将以下代码添加到
.htaccess文件的顶部(在RewriteEngine On这行之后,或者在文件开头加入RewriteEngine On和下面的规则)。
# ====== 织梦Tag二级域名绑定规则 ======
# 将所有对 tags.yourdomain.com 的请求重定向到主站点的 tag.php
RewriteCond %{HTTP_HOST} ^tags\.yourdomain\.com [NC]
RewriteRule ^(.*)$ /tag.php/$1 [L]
# =====================================
代码解释:
RewriteCond %{HTTP_HOST} ^tags\.yourdomain\.com [NC]:这是一个条件,它检查访问的域名是否是tags.yourdomain.com([NC]表示不区分大小写)。RewriteRule ^(.*)$ /tag.php/$1 [L]:如果条件满足,就执行重写规则。^(.*)$:匹配请求路径中所有的内容(访问tags.yourdomain.com/织梦教程,这里会匹配到织梦教程)。/tag.php/$1:将其重写为/tag.php/织梦教程。[L]:表示这是最后一条规则,匹配到此规则后就不再继续匹配其他规则。
注意:请务必将 yourdomain.com 替换成你自己的主域名。
如果你的服务器是 Nginx
- 通过FTP或文件管理器,进入你网站的根目录。
- 找到并编辑
nginx.conf文件,或者更常见的,在虚拟主机配置文件中(通常在/usr/local/nginx/conf/vhost/目录下,文件名是你的域名.conf)添加规则。 - 在你的server块(针对
tags.yourdomain.com的那个server块)中添加以下location规则。
# 在 server { ... } 块内部添加
server
{
listen 80;
server_name tags.yourdomain.com; # 你的二级域名
# 网站目录
root /www/wwwroot/yourdomain; # 你的网站根目录路径
index index.php index.html index.htm;
# ====== 织梦Tag二级域名绑定规则 ======
location / {
# 如果请求的文件或目录不存在,则进行重写
if (!-e $request_filename) {
rewrite ^/(.*)$ /tag.php/$1 last;
break;
}
}
# =====================================
# ... 其他关于PHP的配置 ...
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
代码解释:
server_name tags.yourdomain.com;:指定这个server块是针对你的二级域名的。if (!-e $request_filename):检查请求的路径是否不是一个真实存在的文件或目录。rewrite ^/(.*)$ /tag.php/$1 last;:如果不存在,则将请求重写到/tag.php/加上原始路径。break;和last;是Nginx的重写标志,last表示停止处理当前的请求集,并搜索与重写的URI相匹配的location。
注意:请务必修改 server_name 和 root 路径为你自己的配置。
第四步:检查和测试
- 重启Web服务:修改完配置文件后,必须重启你的Apache或Nginx服务,使新规则生效,在宝塔面板中,可以点击【软件管理】-> 【Nginx/Apache】-> 【重启】。
- 清除浏览器缓存:或者使用无痕/隐私模式进行测试。
- 进行测试:
- 访问你的二级域名,
http://tags.yourdomain.com,应该会显示你网站的tag首页。 - 访问一个具体的tag标签,
http://tags.yourdomain.com/织梦教程,页面应该会正常显示“织梦教程”这个标签下的所有文章列表。 - 如果页面样式错乱,可能是因为CSS和JS的路径是绝对路径(以 开头),指向了主域名,检查你的模板文件,确保资源路径是相对路径或使用
{dede:global.cfg_basehost/}变量。
- 访问你的二级域名,
常见问题与解决方案
-
问题1:访问二级域名显示404 Not Found。
- 原因:伪静态规则没有生效或写错了。
- 解决:检查
.htaccess(Apache) 或nginx.conf(Nginx) 中的语法是否正确,并确保Web服务已重启,检查二级域名是否正确指向了网站根目录。
-
问题2:访问二级域名显示主站首页。
- 原因:伪静态规则没有生效,服务器直接返回了默认的
index.html或index.php。 - 解决:同问题1,重点检查伪静态规则。
- 原因:伪静态规则没有生效,服务器直接返回了默认的
-
问题3:Tag页面打开正常,但CSS和JS样式丢失。
- 原因:资源文件的路径是绝对的(如
/static/css/style.css),当访问二级域名时,浏览器会尝试从tags.yourdomain.com/static/css/style.css加载,而这个路径可能不存在或规则没有覆盖到。 - 解决:
- 修改模板:将模板中的CSS和JS引用路径改为相对路径(如
../static/css/style.css)或使用织梦的全局变量,最佳实践是使用{dede:global.cfg_basehost/},<link href="{dede:global.cfg_basehost/}/static/css/style.css" rel="stylesheet">。 - 扩展伪静态规则:如果不想改模板,可以在伪静态规则中,为静态资源文件添加一个例外,在Apache的
.htaccess中:RewriteCond %{HTTP_HOST} ^tags\.yourdomain\.com [NC] RewriteRule ^(static|templets|uploads)/(.*)$ /$1/$2 [L] # 匹配静态资源目录 RewriteRule ^(.*)$ /tag.php/$1 [L] # 其他请求重写到tag.php
- 修改模板:将模板中的CSS和JS引用路径改为相对路径(如
- 原因:资源文件的路径是绝对的(如
-
问题4:页面内容错乱,或无法获取到正确的标签名。
- 原因:织梦系统没有正确解析从二级域名传过来的参数。
- 解决:通常这和伪静态规则本身关系不大,而是因为规则正确地将
/标签名传递给了tag.php/标签名,织梦的tag.php文件应该能正常处理这种URL格式,如果不行,可以检查tag.php文件,看是否有特殊的URL处理逻辑需要调整。
按照以上步骤操作,你应该就能成功地为织梦的tag标签绑定一个独立的二级域名了,如果在操作中遇到具体问题,可以提供你的服务器类型和报错信息,以便更精确地定位问题。
