
.htaccess文件是Apache Web Server上URL管理的骨干——为每个DirectAdmin托管计划提供支持。无论您需要将旧页面重定向到新URL、强制HTTPS还是清理URL结构,本指南都涵盖了所有.htaccess重定向方法,并提供了可直接复制粘贴的代码示例。
在DirectAdmin上编辑.htaccess
有两种主要方式在DirectAdmin上编辑.htaccess:
- 文件管理器:转到DirectAdmin → 文件 → 文件管理器 → public_html → 点击.htaccess → 编辑
- FTP:通过FileZilla连接并在域根目录中编辑.htaccess文件
重要提示:.htaccess在Linux上是隐藏文件(点文件)。如果使用FTP,请先启用"显示隐藏文件"。在FileZilla中,转到服务器 → 强制显示隐藏文件。
301 vs 302重定向:关键差异
在选择重定向类型之前理解差异至关重要:
- 301永久转移——旧URL被永久转移。Google将SEO链接权重的约90–99%转移到新URL。用于永久转移。
- 302找到(临时)——临时重定向。Google在其索引中保留旧URL。仅用于临时重定向。
将HTTP重定向到HTTPS
现代网络托管中最关键的重定向——强制所有流量使用HTTPS:
对于代理或负载均衡器后面的服务器,请改用转发的协议头:
将www重定向到非www(反之亦然)
www → 非www(推荐用于大多数站点)
非www → www
重定向特定页面
对于将单个页面重定向到新URL,更简单的Redirect指令效果良好:
重定向整个文件夹
将旧文件夹下的所有URL重定向到新文件夹:
使用.htaccess的自定义错误页面
除了重定向,.htaccess还允许您定义自定义错误页面——为访客提供精心设计的体验,而不是Apache的原始错误输出:
精心设计的404页面特别重要:当访客遇到损坏链接时,良好的自定义404页面通过提供导航链接、搜索栏或热门内容链接来让他们保留在您的网站上。没有它,Apache会显示一个平淡的错误,大多数访客会立即离开。
SEO提示:您的自定义404页面必须返回实际的HTTP 404状态代码——而不是200 OK。"软404"(未找到页面上的200状态)会混淆Googlebot并导致它将错误页面索引为真实内容。
查询字符串重定向
重定向具有特定查询字符串参数的URL——在从动态URL迁移到干净的静态slug时很有用:
注意目标URL中的末尾?——这告诉Apache从重定向目标中删除原始查询字符串,防止重复参数被追加。
重定向 vs RewriteRule:使用哪个?
两个指令都处理重定向,但它们在功能和用例上有所不同:
| 特性 | Redirect指令 | RewriteRule |
|---|---|---|
| 复杂性 | 简单,单个URL | 灵活,支持模式 |
| 正则表达式支持 | 否 | 完整的正则表达式支持 |
| 条件逻辑 | 不可用 | RewriteCond条件 |
| 例子 | Redirect 301 /old /new |
RewriteRule ^old(.*)$ /new$1 [L,R=301] |
| 最适合 | 单页重定向 | HTTPS、www、文件夹、模式重定向 |
末尾斜杠重定向
强制末尾斜杠
移除末尾斜杠
将旧域重定向到新域
当您将整个站点迁移到新域时:
防止重定向循环
重定向循环(ERR_TOO_MANY_REDIRECTS)是最常见的.htaccess错误。通过以下方式防止它们:
- 始终在HTTPS重定向规则之前添加
RewriteCond %{HTTPS} off - 在www/非www规则之前使用适当的主机条件
- 使用
[L]或[L,R=301]结束每个RewriteRule - 首先使用302进行测试,然后在确认工作后切换到301
使用curl和在线工具测试重定向
编辑.htaccess后,立即从命令行测试重定向或使用在线检查器查看完整的重定向链:
在线工具如httpstatus.io或redirect-checker.org显示完整的重定向链以及每个步骤的状态代码——便于发现循环或不必要的跳转。将您的重定向链保持在两个跳转或更少(例如,http → https是一个跳转,而不是http → http://www → https)。每个额外跳转为每个访客增加网络延迟。
大多数站点的完整.htaccess模板
提示:所有AsiaGB托管计划都支持mod_rewrite和AllowOverride All,因此.htaccess可以以完全容量工作。计划从500 THB/年开始,提供SSD存储、DirectAdmin控制面板和PHP 7.4/8.2/8.3支持。