# 固定链接、默认文档与目录权限

首页正常但文章页 404，常与重写规则有关；提示需要 FTP 凭据，则应检查文件属主和 PHP 写入权限。两类问题不要混在一起处理。

更新日期：2026-09-16

规范地址：https://stock.iftalking.com/guides/wordpress-permalinks/

## 1. 固定链接决定文章的长期地址

固定链接可以是 `?p=123`，也可以是 `/my-first-post/`。新站选择简单、稳定、能说明主题的结构即可；已经有搜索流量的老站，更改结构需要保留旧地址跳转，不能只点保存。

修改前记录当前结构，导出主要文章 URL，保存站点和 Web 服务配置。多语言、商城或自定义文章类型还要检查其额外路由规则。

## 2. 在后台选择结构并保存

进入 Settings → Permalinks（设置 → 固定链接），查看 Common Settings。文章名结构使用文章 slug；日期结构会把年月日写入地址。选定后保存，再打开一篇真实文章测试。

![WordPress 固定链接设置界面](https://stock.iftalking.com/tutorial-media/wordpress-permalinks.png)

*图示说明：WordPress 官方 Playground 演示环境实拍（2026-09-16，界面显示版本 7.1）。用于对照后台操作，不是服务商控制面板或正式业务数据。*

文章 slug 在编辑器中可以单独设置。建议使用简洁、可读的主题名称，避免把每年都会变化的年份写进长期教程地址。中文 slug 可用，但分享时会转义，选择英文或拼音也应保持一致。

## 3. 首页正常、文章 404 时检查重写

WordPress 需要让不存在的物理路径进入 `index.php` 路由。Nginx 不读取 `.htaccess`，因此在后台反复保存固定链接也不能替你修改 Nginx 配置。

在已正确配置 PHP 的站点 server 块中，常见单站点路由片段为：

```nginx
location / {
    try_files $uri $uri/ /index.php?$args;
}
```

这只是路由片段，不能替代完整 PHP-FPM 配置。修改后运行 `sudo nginx -t`，成功再 reload。宝塔可在该站点“伪静态”中选择 WordPress 对应规则，避免与手工重复规则冲突。

## 4. Apache 检查 .htaccess 和重写模块

Apache 环境要确认 mod_rewrite 可用，站点目录允许需要的 Override，并且 `.htaccess` 内容正确。后台提示无法写入时，按生成的规则手动保存到对应站点，不要把整个根目录改为所有人可写。

配置修改后测试首页、文章、分类、分页和后台。子目录安装、多站点和反向代理环境可能有不同规则，应按自己的部署方式使用官方文档，不能套用单站点根目录示例。

## 5. 更改老站结构时保留跳转

为每个旧地址建立到对应新文章的 301 或 308 跳转，尽量一步到达，保留有意义的查询参数。不要把所有旧文章都跳到首页，这会让读者找不到内容，也不利于搜索引擎理解迁移。

```bash
curl -I https://example.com/old-article/
curl -I https://example.com/new-article/
```

旧地址应返回正确 Location，新地址应正常显示且 canonical 指向自身。更新站内链接和 sitemap，再通过站长工具检查抓取情况。清理缓存后用未登录浏览器验证，避免只看到管理员绕过缓存的结果。

继续阅读[WordPress 迁移](https://stock.iftalking.com/guides/wordpress-migration/)与[安全及 SEO](https://stock.iftalking.com/guides/wordpress-security-seo/)。


## 完成后检查

同时检查后台更新和前台页面。解决一个 404 不应导致其他站点权限被放宽。

## 参考资料

- [WordPress 开发与运维手册](https://developer.wordpress.org/advanced-administration/server/web-server/nginx/)
- [宝塔官方文档](https://docs.bt.cn/)
- [WordPress 开发与运维手册](https://developer.wordpress.org/playground/)
