织梦CMS的链接形式主要分为两种:动态链接和静态链接,您的问题是如何修改“动态链接”,这通常包含两种情况:
- 将默认的动态链接(带 和
&的)修改为更友好的伪静态链接(/plus/view.php?aid=123改为/plus/view-123.html),这是最常见的需求,因为伪静态链接对搜索引擎更友好,也更美观。 - 修改动态链接中的某些参数,比如修改
aid为id,但这非常不推荐,因为这会破坏系统兼容性。
下面我将主要围绕第一种情况,也就是从动态链接改为伪静态链接,并提供详细的步骤。
核心概念:动态链接 vs. 伪静态链接
-
动态链接:
https://www.yoursite.com/plus/view.php?aid=123- 特点:包含 和
&等特殊字符,URL较长,服务器每次都需要解析PHP脚本,生成页面。 - 优点:技术实现简单,内容实时更新。
- 缺点:对搜索引擎不友好,用户体验不佳。
- 特点:包含 和
-
伪静态链接:
https://www.yoursite.com/plus/view-123.html- 特点:看起来像静态文件(以
.html,但实际上仍然是动态生成的,通过服务器的重写规则(如Apache的.htaccess或Nginx的rewrite规则)将请求转发给PHP脚本。 - 优点:URL美观、简洁,对搜索引擎友好,用户体验好。
- 缺点:需要服务器配置支持,首次设置稍复杂。
- 特点:看起来像静态文件(以
修改步骤:从动态链接改为伪静态链接
这个过程主要分为三步:后台开启伪静态 -> 2. 上传/修改服务器规则文件 -> 3. 更新网站缓存。
第1步:在织梦后台开启伪静态
- 登录您的织梦后台。
- 在左侧菜单栏找到 “系统” -> “系统基本参数”。
- 在弹出的页面中,点击顶部的 “核心设置” 选项卡。
- 找到 “是否使用伪静态” 这一项,将其修改为 “是”。
- 点击页面底部的 “保存” 按钮。
第2步:配置服务器规则文件(最关键的一步)
织梦官方提供了不同服务器的伪静态规则文件,您需要根据您的服务器环境,选择对应的规则并上传到网站的根目录。
找到规则文件
织梦程序的 目录下,通常有一个名为 rewrite 的文件夹,里面包含了各种服务器的规则文件,
httpd.ini(IIS6)httpd.conf(IIS7).htaccess(Apache)nginx.conf(Nginx)
根据您的服务器类型进行操作
A. Apache 服务器 (最常见)
- 文件:
rewrite文件夹下的.htaccess文件。 - 操作:
- 将这个
.htaccess文件下载到本地。 - 用文本编辑器(如记事本、VS Code、Sublime Text)打开它。
- 检查并修改:确保文件开头的
RewriteEngine On是开启的,如果您的网站存放在子目录(http://www.yoursite.com/dede/),您需要修改RewriteBase /这一行,将其改为RewriteBase /您的子目录/,如果安装在根目录,则保持 即可。 - 将修改后的文件上传到您网站的根目录(
public_html、wwwroot或htdocs)。 - 确保您的服务器已经开启了
mod_rewrite模块,大部分虚拟主机默认已开启,如果您是独立服务器,可以在httpd.conf中检查LoadModule rewrite_module modules/mod_rewrite.so这一行是否没有被注释掉。
- 将这个
B. Nginx 服务器
-
文件:
rewrite文件夹下的nginx.conf文件。 -
操作:
- 不要直接上传这个文件,您需要将里面的规则复制出来。
- 登录您的Nginx服务器管理后台(如宝塔面板、LNMP一键安装包等)。
- 找到您网站对应的 Nginx配置文件。
- 在该文件的
server { ... }块内,将nginx.conf文件中的规则粘贴进去。 - 保存配置文件,并重启Nginx服务,使新规则生效。
Nginx规则示例(通常包含在
server块内):location / { rewrite "^/plus/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last; rewrite "^/plus/list-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&PageNo=$2 last; rewrite "^/plus/view-([0-9]+)\.html$" /plus/view.php?aid=$1 last; # ... 其他规则 }
C. IIS 服务器
- 文件:
rewrite文件夹下的httpd.ini(IIS6) 或web.config(IIS7+)。 - 操作:
- IIS6:将
httpd.ini文件上传到网站根目录。 - IIS7+:通常需要将规则转换为
web.config格式,织梦rewrite文件夹里一般也提供了web.config文件,直接上传到网站根目录即可。
- IIS6:将
第3步:更新网站缓存并测试
- 更新缓存:回到织梦后台,点击 “系统” -> “一键更新网站” -> “更新所有”,这一步会根据新的URL规则重新生成所有页面的链接。
- 测试:
- 清除浏览器缓存。
- 访问您的网站首页,点击任意一篇文章的标题,看链接是否变成了
.../plus/view-123.html这样的形式。 - 如果能正常打开,说明修改成功。
- 如果出现404错误,请检查第2步中的服务器规则是否正确配置或上传。
常见问题与注意事项
-
404错误怎么办?
- 首要检查:服务器规则文件(
.htaccess或nginx.conf)是否正确上传或配置,并且服务器是否支持该规则。 - 目录权限:确保网站根目录有写入和读取权限。
- 服务器模块:确认Apache的
mod_rewrite已开启,Nginx的rewrite模块已加载。
- 首要检查:服务器规则文件(
-
网站安装在子目录怎么办?
- 非常重要! 如果您的网站在
http://www.yoursite.com/dede/下,那么在.htaccess文件中,必须将RewriteBase /修改为RewriteBase /dede/,所有规则都会基于这个路径进行重写。
- 非常重要! 如果您的网站在
-
修改后旧链接还能访问吗?
- 织梦的伪静态规则通常会同时支持旧动态链接和新伪静态链接,也就是说,
/plus/view.php?aid=123和/plus/view-123.html都能访问到同一篇文章,这有利于SEO,避免因链接变更导致收录丢失。
- 织梦的伪静态规则通常会同时支持旧动态链接和新伪静态链接,也就是说,
-
“静态链接”和“伪静态链接”有什么区别?
- 静态链接:真实存在的HTML文件,如
/html/123/123.html由织梦生成并保存在服务器上,优点是访问速度快,服务器压力小,缺点是每次修改内容都需要重新生成全站文件。 - 伪静态链接:只是URL的伪装,实际访问的还是PHP脚本,优点是灵活,内容更新无需重新生成,缺点是服务器需要实时解析,比纯静态略慢。
- 织梦还支持“动态发布”,即完全使用动态链接,您可以在后台“核心设置”中切换这三种模式。
- 静态链接:真实存在的HTML文件,如
修改织梦动态链接的核心流程是:后台开启伪静态 -> 配置服务器规则文件 -> 更新缓存,最关键的一步是服务器规则的配置,请务必根据您的服务器类型(Apache/Nginx/IIS)进行正确的操作。
希望这个详细的教程能帮助您成功修改织梦的链接!如果遇到具体问题,可以告诉我您的服务器类型和遇到的具体错误信息,我可以提供更针对性的帮助。
