# 了解 KapsuleHost 上的 .htaccess

Source: https://support.kapsulehost.com/zh-cn/wordpress-htaccess

KapsuleHost 以一款高性能的网络服务器为每个网站提供服务,该服务器不会读取 `.htaccess`,因此您添加到该文件中的规则不会产生任何效果:本指南将说明这对 WordPress 网站意味着什么,并展示用于完成同样工作的 KPanel 设置。

如果您是从共享 cPanel 主机迁移过来的,`.htaccess` 很可能就是您用来设置重定向、强制 HTTPS、自定义错误页面和屏蔽机器人的地方。所有这些功能在 KapsuleHost 上依然可用。只是它们改为在 KPanel 中设置,而不是在文本文件中设置,并且由于这些设置是在服务器层面应用的,因此速度更快,也不会因为一个拼写错误而导致网站出问题。

## 为何 .htaccess 在这里不起作用

`.htaccess` 是 Apache 网络服务器的按目录配置文件。Apache 会在每一次请求时重新读取该文件,这既是它便利之处,也是它运行缓慢的原因。

KapsuleHost 并不运行 Apache。您的网站由事件驱动型网络服务器提供服务,该服务器仅在启动时加载一次配置,这也是本平台网站在高负载下响应更快的重要原因之一。该服务器没有任何类似按目录覆盖文件的机制,因此它永远不会打开 `.htaccess`。

> **Warning:** 在 KapsuleHost 网站上向 `.htaccess` 添加规则会静默失败。不会报错,不会发出警告,文件也会原封不动地留在原处。只是这些规则永远不会被执行。如果您正在按照某篇 WordPress 教程的说明"将此内容添加到您的 .htaccess 文件中",请改为在下方表格中查找对应的 KPanel 设置。

好消息是,这与通常关于 `.htaccess` 的噩梦故事恰恰相反:该文件中的语法错误在这里不会导致您的网站宕机,因为根本没有任何程序会解析它。

## 不使用该文件仍可正常运作的功能

**固定链接。** WordPress 网站在 Apache 上最常需要 `.htaccess` 的原因,就是美化固定链接。在 KapsuleHost 上,重写规则已内置于您网站的服务器配置中,因此 `/2026/07/my-post/` 无需任何 `.htaccess` 代码块即可通过 WordPress 正常解析。如果固定链接返回 404 错误,原因在于其他方面:请参阅[解决 WordPress 固定链接问题](https://support.kapsulehost.com/zh-cn/wordpress-permalink-issues)。

**WordPress 写入该文件。** WordPress 及部分插件仍会将 `# BEGIN`/`# END` 代码块写入 `.htaccess`,因为它们默认认为运行环境是 Apache。这并无害处。该文件是真实存在的,可以写入,并且您会在文件管理器中看到它。只是没有任何程序会读取它。

**报告"已应用强化措施"的安全插件。** 声称通过修改 `.htaccess` 来锁定 `xmlrpc.php` 或 `wp-config.php` 的插件,实际上并未在本平台上起到任何保护作用。请改用网站自带的**安全性**标签页,该功能会在服务器层面应用对应的规则。

## 常见 .htaccess 规则对应的 KPanel 设置

以下每一项都位于网站本身内部:**网站**,然后选择您的网站,再进入对应标签页。

| 您原本会写入 .htaccess 的内容 | 在 KPanel 中对应的位置 |
|---|---|
| `RewriteCond %{HTTPS} off`,用于强制 HTTPS | **设置**,然后在"行为"下找到**强制 HTTPS** |
| `Redirect 301 /old /new` | **设置**,然后**重定向** |
| `ErrorDocument 404 /404.html` | **设置**,然后**错误页面** |
| `AuthType Basic`,用于对文件夹进行密码保护 | **设置**,然后**密码保护** |
| `Require not ip 203.0.113.4`,用于屏蔽某个地址 | **WordPress**,然后**安全性** |
| `RewriteCond %{HTTP_USER_AGENT} (BadBot)`,用于屏蔽爬虫 | **性能**,然后**爬虫** |
| `DirectoryIndex index.php index.html` | **设置**,然后在"提供服务"下找到**目录索引** |
| `mod_deflate` / `mod_expires`,用于压缩和缓存 | 已默认开启。压缩和缓存响应头均在服务器端设置 |

其中有两项的功能远超 `.htaccess` 版本所能实现的。重定向支持精确路径、尾部斜杠前缀以及诸如 `/blog/*` 之类的通配符,并且 KPanel 会在您保存后实时验证该重定向是否生效。错误页面会以其真实的状态码提供服务,因此自定义 404 页面对搜索引擎而言依然是真正的 404,而不是带有道歉文字的 200 状态。

![KPanel 中某网站的重定向页面,重定向规则由网络服务器应用](https://support.kapsulehost.com/help/screenshots/wordpress-htaccess.1030a8b1.webp)

## 查找并查看该文件

您可能仍然想查看 `.htaccess`,通常是为了了解某个插件写入了什么内容,或者在 KPanel 中重新创建规则之前先复制出来。

### 从 WordPress 标签页进入

1. 登录 [KPanel](https://kpanel.kapsulehost.com),点击左侧边栏中的**网站**。
2. 点击您要查看的网站。
3. 打开 **WordPress** 标签页,然后进入 **wp-config** 部分。
4. 滚动至 `.htaccess` 面板。内容以只读方式显示,如需修改则会提供**编辑**按钮。

### 从文件管理器进入

1. 打开网站,然后进入**设置**,再进入**文件管理器**。
2. 点击工具栏中的**显示隐藏文件**。以点开头的文件默认是隐藏的,因此 `.htaccess` 在您执行此操作之前不会显示出来。
3. 点击 `.htaccess` 即可在内置编辑器中打开它。

该文件位于网站的根目录,与 `wp-config.php` 和 `wp-content` 处于同一位置。关于编辑器及其权限控制的完整说明,请参阅[使用文件管理器](https://support.kapsulehost.com/zh-cn/file-manager)。

> **Tip:** 在对网站根目录下的任何文件进行编辑之前,请先进行备份,即使该文件没有被读取也是如此。这几乎不花费任何成本,却能让您通过一次点击恢复原状。请参阅[创建备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)。

## 默认的 WordPress 代码块

作为参考,以下是 WordPress 自动写入的代码块。在 Apache 主机上,它负责驱动固定链接。在 KapsuleHost 上,它处于无效状态,删除它也不会造成任何问题:

```apache
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
```

如果您以后可能会将网站迁移到 Apache 主机,建议保留该代码块。无论如何,WordPress 会在您下次保存固定链接设置时重新写入它。

## 如果您正在迁移现有规则

当您将网站从 cPanel 迁移过来时,请在取消旧主机服务之前先打开旧的 `.htaccess`,并逐行进行处理:

1. **重定向。** 在**设置**,然后**重定向**中,为每一条 `Redirect` 或 `RewriteRule` 规则重新创建对应条目。每条规则对应一行。永久性变更请选择 301,如果该变更可能会撤回,则选择 302。
2. **强制 HTTPS。** 删除该规则。改为在网站的**设置**中开启**强制 HTTPS**。
3. **IP 屏蔽。** 在 **WordPress**,然后**安全性**的 IP 屏蔽面板中重新创建相应规则。
4. **缓存与压缩响应头。** 删除这些规则。它们已经为您自动处理,来自旧主机的过时 `mod_expires` 规则往往是导致缓存行为混乱的常见原因。
5. **插件写入的任何内容。** 忽略即可。请在新网站上重新安装该插件,让其自行完成相应设置。

迁移过程会保留文件本身,因此在您处理上述列表时不会丢失任何内容。完整的迁移流程请参阅:[从 cPanel 迁移网站](https://support.kapsulehost.com/zh-cn/sites-migrate-cpanel)。

## 故障排查

**"我在 .htaccess 中添加了重定向,但没有任何效果。"** 这是正常现象。请在**设置**,然后**重定向**中添加该规则。那里的状态列会告诉您该重定向是否已被实时验证通过。

**"某插件显示我的网站已加固,但扫描工具却给出相反结论。"** 该插件写入的 `.htaccess` 规则并不会被读取。请查看网站的**安全性**标签页,了解真正生效的防护措施。

**"我旧主机的 .htaccess 文件里有一些我看不懂的规则。"** 请不要盲目地照搬这些规则。请提交工单并附上该文件,我们会告诉您哪些规则在 KapsuleHost 中有对应的替代方案,哪些只是用来弥补共享 Apache 主机不足之处的。

**"固定链接出现问题。"** 在本平台上,这不是 `.htaccess` 的问题。请前往[解决 WordPress 固定链接问题](https://support.kapsulehost.com/zh-cn/wordpress-permalink-issues),或者从网站的 **WordPress** 标签页中选择**快速操作**,然后点击**刷新重写**来刷新重写规则。
